再現環境 : Nexus 5 (Android 6.0.1)
以下はどうも android.support.v7.widget.Toolbar
バグっぽいです。
(Nougatの端末では再現せず)
EditTextに入力していたら、なぜかtoolbar部分が消えた。
EditTextを改行不可にする android:inputType="text"
<EditText android:layout_width="match_parent"
android:layout_height="70dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:inputType="text"/>
適当に EditText に文字を入力する(そのまま横に入力が進む)
ある程度進むと急に toolbar
が上に巻き取られて消える。(スクロール時の動きと同じ感じ)
青いtoolbar部分が消えてしまう。
toolbarの指定はこんな感じ
<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でだけ指定解除できる。
AppBarLayout.LayoutParams params = (AppBarLayout.LayoutParams) toolbar.getLayoutParams();
params.setScrollFlags(0);
kotlinだともっと簡潔
val params = toolbar.layoutParams as AppBarLayout.LayoutParams
params.scrollFlags = 0
どうも現象としては recyclerView などでスクロールさせている箇所以外だと発生してしまう。
ScrollViewで挟んでもダメっぽい。
ミニマルな再現コードは、AndroidStudioでCreate New Project > Navigation Drawer Activityで作ったプロジェクトで再現できた。 app:layout_scrollFlags="scroll|enterAlways"
を追加するだけ。
Nougatの端末では再現できずだったので、Marshmallow以下だけかも。