当前位置: 首页 > 知识库问答 >
问题:

在片段或活动中使用工具栏的协调器布局

白学
2023-03-14

共有1个答案

司徒兴思
2023-03-14

对我来说,在每个片段中都有appbar和toolbar听起来太奇怪了。因此,我选择在活动中使用带有工具栏的单个appbar。

为了用CoordinatorLayout解决这个问题,您必须设置FrameLayout(或任何其他布局)的不同行为,这些行为应该包含每个片段中的片段,您希望覆盖默认行为。

假设您的默认行为是app:layout_behavior=“@string/appbar_scrolling_view_behavior”

<android.support.design.widget.CoordinatorLayout
    android:id="@+id/coordinator"
    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.support.v7.widget.Toolbar
            android:id="@+id/dashboard_toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/AppTheme.Toolbar"
            app:layout_scrollFlags="scroll|enterAlways"/>
    </android.support.design.widget.AppBarLayout>

    <FrameLayout
        android:id="@+id/dashboard_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
</android.support.design.widget.CoordinatorLayout>
CoordinatorLayout.Behavior behavior;

@Override
public void onAttach(Activity activity) {
    super.onAttach(activity);

    if(behavior != null)
        return;

    FrameLayout layout =(FrameLayout) getActivity().findViewById(R.id.dashboard_content);
    CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) layout.getLayoutParams();

    behavior = params.getBehavior();
    params.setBehavior(null);

}

@Override
public void onDetach() {
    super.onDetach();
    if(behavior == null)
        return;

    FrameLayout layout =(FrameLayout) getActivity().findViewById(R.id.dashboard_content);
    CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) layout.getLayoutParams();

    params.setBehavior(behavior);

    layout.setLayoutParams(params);

    behavior = null;
}
 类似资料:
  • 我有一个活动,主机2个片段,我目前使用协调器布局在两个片段与appbarlayout和工具栏布局,我已经设置它这样滚动工具栏屏幕与我的回收视图。这一直导致我的布局问题,因为我已经在这里发布,所以我希望改变我的方法。如果我可以,该活动将在协调器布局中宿主工具栏/应用程序栏布局。

  • 我已经给了自定义工具栏的活动中的搜索视图和过滤器数据去片段。当我点击搜索图标时,工具栏变大。活动中使用了导航栏,可能是它的问题吗?。它是没有导航栏的独立活动 这是我的代码:活动.xml: 碎片代码:

  • 我的应用程序(最小API14)使用带有3个选项卡的ActionBar。选项卡是:i。输入数据(约10个片段)ii。管理数据(15个片段)三.查看数据(8个片段)。每个选项卡都有一个默认片段,但根据用户的选择会有多个片段。 我希望用户能够在3个选项卡之间滑动(通过滑动内容),因此我需要使用ViewPager和兼容性库V4。 我得到的建议(经过大量研究)是使用一个MainActivity,它承载Act

  • 问题内容: 在我的应用程序中,我有两个片段和一个MainActivity。activity_main.xml包含一个折叠式工具栏,当片段为空时,该工具栏非常适合我。在我的第一个片段中,我从服务器获取json数据,并将其放入片段活动内的listview中。数据已正确获取并显示,但是listview占据了整个屏幕,而我折叠的工具栏似乎有点小虫子,就像有时它弹出并消失了,并且listview不再可滚动了

  • 我想用新的导航抽屉。我遵循了指导原则,并设法让它处理部分名称、选定项目的标题更改等问题。现在我陷入了困境,因为我不知道如何归档我下一步要做的事情。 例如,当我点击抽屉里的一个项目时,我想让它把我带到一个屏幕上,在那里我有我为特定屏幕在特定布局中创建的所有东西。这都是静态的东西,比如和图像,所以我不需要对它们做任何事情。 我是否应该为抽屉的上的每个项目创建一个和一个布局,并(不知如何)在?或者,我可

  • 问题内容: 我正在尝试创建一个viewpager,它可以通过3个不同的片段滑动,每个片段具有不同的工具栏。我之前已经在一个活动中实现了新工具栏,并且可以使用它,但是我正在尝试使其与片段一起使用 这是片段代码 我使用扩展了片段,但是却出现了错误 我不确定如何解决此问题,如果删除代码,它将停止在某些设备上运行吗? 问题答案: 片段没有这种方法。ActionBar是Activity的属性,因此要将工具栏