Я хочу иметь CollapsingToolbarLayout
(внутри AppBarLayout
), который расширяет/сворачивает, когда пользователь встает с пальца. Когда пользователь удерживает и перемещает палец по экрану, CollapsingToolbarLayout
должен одновременно изменять размер (стандартное поведение).Как заставить только два состояния (расширенные и свернутые) CollapsingToolbarLayour?
Моя проблемой является частью: "CollapsingToolbarLayout
расширяется/разрушается, когда пользователь встает палец У меня есть стандартное решение от материальной библиотеки поддержки (внутри фрагмент):
(я удалить не важные атрибуты):
<android.support.design.widget.CoordinatorLayout>
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/toolbar_layout"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_scrolling" />
</android.support.design.widget.CoordinatorLayout>
Я пытаюсь справиться onTouch событие так:
findViewById(R.id.app_bar).setOnTouchListener(new View.OnTouchListener() {
int counter = 0;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getActionMasked()) {
case MotionEvent.ACTION_DOWN:
counter++;
Log.d("tag toolbar_layout", "=== ACTION_DOWN "+ counter);
break;
case MotionEvent.ACTION_CANCEL:
counter--;
Log.d("tag toolbar_layout", " == ACTION_UP " +counter);
break;
case MotionEvent.ACTION_CANCEL:
counter--;
Log.d("tag toolbar_layout", " == ACTION_CANCEL "+ counter);
break;
default:
Log.d("tag toolbar_layout", "onTouch "+ event.getAction());
}
return true;
}
но я почти принимаю ACTION_CANCEL
и очень редко ACTION_UP
и ACTION_CANCEL
еще слишком рано, я все еще держу палец на экране, когда приложение получает это событие. А после ACTION_CANCEL
приложение больше не получает. Я не могу позвонить setExpanded(true, true)
на панели приложений.
Итак, вопрос: есть ли другой способ получить информацию о том, что пользователь встает с пальцем? CollapsingToolbarLayout
?