Я хочу реализовать пользовательское поведение в LinearLayout. Это структура моего xml:
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout.../>
<android.support.v4.widget.DrawerLayout.../>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_behavior="com.xxx.BottomBarBehavior"
android:layout_gravity="bottom|center_horizontal".../>
</android.support.design.widget.CoordinatorLayout>
LinearLayout находится внутри CoordinatorLayout, ниже DrawerLayout. LinearLayout не перемещается вверх, когда отображается закусочная. Я просто не могу уложиться в голове. Макет таков, что DrawerLayout содержит ViewPager, и этот viewPager заполняется другим xml фрагментом. А закусочная создается элементом в recyclerView этого фрагмента.
Вот как выглядит мой собственный класс поведения BottomBarBehavior:
public class BottomBarBehavior extends CoordinatorLayout.Behavior<LinearLayout> {
public BottomBarBehavior(Context context, AttributeSet attrs) {}
@Override
public boolean layoutDependsOn(CoordinatorLayout parent, LinearLayout child, View dependency) {
return ( dependency instanceof Snackbar.SnackbarLayout ) ||
( dependency instanceof DrawerLayout );
}
@Override
public boolean onDependentViewChanged(CoordinatorLayout parent, LinearLayout child, View dependency) {
if( dependency instanceof Snackbar.SnackbarLayout ) {
float translationY = Math.min(0, dependency.getTranslationY() - dependency.getHeight());
child.setTranslationY(translationY);
}
return true;
}
}
layoutDependsOn
не имеет ничего общего сClassCastException
. Проверьте, не произойдет ли это снова. - person Nikola Despotoski   schedule 07.02.2016