【问题标题】:How to set gravity top in collapsible toolbar layout如何在可折叠工具栏布局中设置重力顶部
【发布时间】:2017-06-10 12:03:06
【问题描述】:

折叠后我在可折叠工具栏中遇到一个问题,工具栏与 tablayout 重叠。如果我不滚动它工作正常,但如果我向上滚动它们都重叠,我正在动态更改片段中的工具栏折叠模式.

代码:

  private void setToolbarPin(Toolbar toolbar)
    {

        ViewGroup.LayoutParams params = toolbar.getLayoutParams();
        CollapsingToolbarLayout.LayoutParams newParams;
        if (params instanceof CollapsingToolbarLayout.LayoutParams) {
            newParams = (CollapsingToolbarLayout.LayoutParams)params;
        } else {
            newParams = new CollapsingToolbarLayout.LayoutParams(params);
        }

        newParams.setCollapseMode(CollapsingToolbarLayout.LayoutParams.COLLAPSE_MODE_OFF);
        newParams.gravity = Gravity.TOP;
        toolbar.setLayoutParams(newParams);






      //  toolbar.requestLayout();

    }
}
<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/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.design.widget.CollapsingToolbarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/collapsing_toolbar"
            app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
            android:fitsSystemWindows="true"
            >


            <View
                android:id="@+id/customView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:layout_collapseMode="parallax"
                ></View>

            <android.support.design.widget.TabLayout
                android:id="@+id/tabs"
                app:layout_behavior="@string/appbar_scrolling_view_behavior"
                android:paddingTop="?attr/actionBarSize"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:visibility="gone"
                android:layout_gravity="bottom"
                />

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                app:layout_behavior="@string/appbar_scrolling_view_behavior"
                android:layout_height="?attr/actionBarSize"
                android:background="?attr/colorPrimary"
                android:layout_gravity="top"
                android:layout_alignParentTop="true"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
                app:layout_scrollFlags="scroll|enterAlways|snap"
                />
        </android.support.design.widget.CollapsingToolbarLayout>



    </android.support.design.widget.AppBarLayout>



    <FrameLayout
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        >


    </FrameLayout>


    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="end|bottom"
        android:layout_margin="@dimen/fab_margin"
        android:src="@drawable/ic_done" />

</android.support.design.widget.CoordinatorLayout>

【问题讨论】:

  • 为什么你的Toolbar 低于TabLayout 并且有alignParentBottom 尝试切换ToolbarTablayout 的位置并删除alignParentBottom
  • 我正在更改另一个片段中的一个片段中的工具栏折叠模式状态我正在删除折叠模式

标签: android android-tablayout android-collapsingtoolbarlayout


【解决方案1】:

试试这个代码:

<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:expanded="true"
    android:fitsSystemWindows="true"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
        app:layout_scrollFlags="scroll|enterAlways">
    </android.support.v7.widget.Toolbar>
    <android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:tabTextColor="@android:color/white"
        app:tabGravity="fill"
        app:tabMode="scrollable" />
</android.support.design.widget.AppBarLayout>

【讨论】:

  • 您在 xml 中使用 View 做什么?
  • 如果您想在滚动时折叠Toolbar,那么您根本不需要CollapsingToolbarLayoutView。但是,如果您的 View 是例如 ImageView 并且您试图折叠 View 那么您需要 CollapsingToolbarLayout
  • 我需要视图和选项卡,在一个片段中我想在另一个片段中显示折叠的工具栏视图我需要 whatsapp 类型的选项卡,我正在操作视图高度,我在第一个片段中设置工具栏折叠模式引脚并在第二个片段中关闭折叠模式我的问题是当它处于扩展模式时然后在下一个片段中它工作正常,但是如果我在下一个片段中折叠工具栏与 tablayout 重叠所以我想我想给工具栏一些重力顶部布局,但它不起作用
猜你喜欢
  • 1970-01-01
  • 2016-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多