Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Toolbarが急に消える

More than 3 years have passed since last update.

再現環境 : Nexus 5 (Android 6.0.1)

以下はどうも android.support.v7.widget.Toolbar バグっぽいです。
(Nougatの端末では再現せず)


EditTextに入力していたら、なぜかtoolbar部分が消えた。

EditTextを改行不可にする android:inputType="text"

app/src/main/res/layout/content_main.xml
<EditText android:layout_width="match_parent"
          android:layout_height="70dp"
          android:layout_marginLeft="16dp"
          android:layout_marginRight="16dp"
          android:inputType="text"/>

適当に EditText に文字を入力する(そのまま横に入力が進む)

image.png

ある程度進むと急に toolbar が上に巻き取られて消える。(スクロール時の動きと同じ感じ)
青いtoolbar部分が消えてしまう。

toolbarの指定はこんな感じ

app/src/main/res/layout/app_bar_main.xml
<android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|enterAlways"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

app:layout_scrollFlags="scroll|enterAlways" が悪さをしている模様。


指定を解除すれば発生しないが、recyclerViewなどでちゃんとスクロールしている箇所ではこのままが良い場合、以下のような感じで特定のviewでだけ指定解除できる。

app/src/main/java/com/example/mariko/drawercheckedittext/MainActivity.java
AppBarLayout.LayoutParams params = (AppBarLayout.LayoutParams) toolbar.getLayoutParams();
params.setScrollFlags(0);

kotlinだともっと簡潔

val params = toolbar.layoutParams as AppBarLayout.LayoutParams
params.scrollFlags = 0

参考 : https://stackoverflow.com/questions/30771156/how-to-set-applayout-scrollflags-for-toolbar-programmatically

どうも現象としては recyclerView などでスクロールさせている箇所以外だと発生してしまう。
ScrollViewで挟んでもダメっぽい。

ミニマルな再現コードは、AndroidStudioでCreate New Project > Navigation Drawer Activityで作ったプロジェクトで再現できた。 app:layout_scrollFlags="scroll|enterAlways" を追加するだけ。
Nougatの端末では再現できずだったので、Marshmallow以下だけかも。

heartrails
ハートレイルズは、新規事業の立ち上げに伴うウェブサービス、スマホアプリの企画、開発、運用に特化した開発会社です。
http://www.heartrails.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away