Я пытаюсь развернуть CollapseingToolbarLayout, когда произошло определенное количество прокрутки и прокрутка закончилась.Как использовать CollapsingToolbarLayout иметь только 2 позиции, развернуто и свернуто после завершения прокрутки
Я получил работу как должен быть, но мне нужна, чтобы панель инструментов была видимой или скрытой, а не полу, поэтому в основном для расширения или сглаживания.
Я попытался найти решение без везения.
Вот как у меня сейчас:
my_activity.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/myLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:padding="0dp"
android:layout_margin="0dp"
android:id="@+id/myPager"/>
<android.support.design.widget.AppBarLayout
android:id="@+id/appBar"
android:layout_width="match_parent"
android:layout_height="112dp"
android:minHeight="?attr/actionBarSize">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:titleEnabled="false"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<android.support.v7.widget.Toolbar
android:id="@+id/appToolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
>
</android.support.v7.widget.Toolbar>
<android.support.design.widget.TabLayout
style="@style/AppTheme.TabLayout"
android:id="@+id/appTabs"
android:scrollbars="horizontal"
android:layout_gravity="bottom"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:tabMode="fixed"
app:tabGravity="fill"
app:layout_scrollFlags="scroll|enterAlways" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
Если я использую onOffsetChanged, мое приложение зависает, так это причина, это происходит каждый раз при смене прокрутки ?
MyActivity.java
public class MyActivity extends AppCompatActivity {
private AppBarLayout appBarLayout;
private android.support.v7.app.ActionBar mToolbar;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_activity);
appBarLayout = (AppBarLayout)findViewById(R.id.appBar);
mToolbar = getSupportActionBar();
appBarLayout.setExpanded(true);
appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
@Override
public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
if(verticalOffset == 0 || verticalOffset <= mToolbar.getHeight()) {
appBarLayout.setExpanded(false);
} else {
appBarLayout.setExpanded(true);
}
}
});
}
}
это довольно близко, что Я ищу, так или иначе, он каждый раз расширяется, независимо от того, si ze разваливающейся высоты панели инструментов. Что будет проблемой? – EspeH
Вы должны удалить множитель в состояние. Выполняя различный тест, я заметил, что в то время как 'AppBarLayout' меньше, чем некоторый размер, ошибка дисплея (153dp для mu Nexus 9 и для 137dp моего Nexus 5). – gouvinb