我希望我的工具栏和tabhost的tabwidget在滚动内容时表现不同。我希望我的工具栏在向下滚动时可以退出(此部分可以),但是由于Tabhost包含tabwidget,所以如果我将滚动行为应用于整个tabhost,则底部的tabwidget会滚动显示内容(首先它开始不可见,然后在我滚动时出现内容)。我希望Tabwidget捕捉到它的位置而不滚动。
这是我的活动xml:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:bind="http://schemas.android.com/tools">
<data>
<variable
name="jangler"
type="co.jangle.android.model.api.dispatch.social.Jangler"/>
<variable
name="handler"
type="co.jangle.android.ui.view.main.TabsListener"/>
</data>
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical">
<!-- toolbar -->
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbarLayout"
style="@style/AppTheme.TabToolbar"
android:layout_width="match_parent"
android:layout_height="50dp"
android:elevation="0dp"
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"
app:elevation="0dp"
app:layout_scrollFlags="scroll|enterAlways">
<include
android:id="@+id/toolbarContent"
layout="@layout/toolbar_tabs_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
bind:handler="@{handler}"
bind:profilePictureThumbnail="@{jangler.imageThumbnailUrl}"/>
</androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.AppBarLayout>
<co.jangle.android.ui.view.main.JangleTabHost
android:id="@+id/mainTabTabHost"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@android:id/tabcontent"
style="@style/AppTheme.ConstrainedToParentLR"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/guidelineFragmentTabHostB"
app:layout_constraintTop_toTopOf="parent"/>
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guidelineFragmentTabHostB"
style="@style/AppTheme.GuideLine"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.93"/>
<TabWidget
android:id="@android:id/tabs"
style="@style/AppTheme.ConstrainedToParentLR"
android:layout_height="0dp"
android:background="@color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/guidelineFragmentTabHostB"/>
<View
android:id="@+id/separator"
style="@style/AppTheme.Separator.Horizontal"
android:background="#26000000"
app:layout_constraintTop_toBottomOf="@id/guidelineFragmentTabHostB"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</co.jangle.android.ui.view.main.JangleTabHost>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</layout>
这是我的片段xml:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="handler"
type="co.jangle.android.ui.view.main.TabsListener"/>
</data>
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/swipeRefreshLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
android:id="@+id/emptyView"
style="@style/AppTheme.ConstrainedToParent"
layout="@layout/view_empty_home"
android:visibility="gone"/>
<co.jangle.android.component.VerticalSkewRecyclerView
android:id="@+id/recyclerviewVertical"
style="@style/AppTheme.ConstrainedToParent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</layout>