Articles of android appbarlayout

CoordinatorLayout / AppBarLayout ExpandableListView被渲染出屏幕

还有更多的问题在使用CoordinatorLayout和AppBarLayout。 我正在尝试实现基本function,即在滚动屏幕时向下滚动屏幕,并在滚动屏幕时返回屏幕。 但是,我目前的设置显示出一个问题:不仅工具栏不滚动,ListView似乎在屏幕底部渲染。 就好像被AppBarLayout高度所抵消一样。 这里是一个描述问题的gif,请注意最后的项目也被closures了ScrollBar在屏幕之外: 我的布局很标准: <?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:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/background"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?android:attr/actionBarSize" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" android:background="@color/orange" app:layout_scrollFlags="scroll|enterAlways"/> </android.support.design.widget.AppBarLayout> <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/swipeToRefresh" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <ExpandableListView android:id="@+id/listView" android:groupIndicator="@android:color/transparent" android:layout_width="match_parent" android:dividerHeight="0px" android:layout_height="match_parent"/> </android.support.v4.widget.SwipeRefreshLayout> </android.support.design.widget.CoordinatorLayout>

当设置应用程序:海拔=“0dp”,然后汉堡菜单不显示到工具栏

您好,我想删除下面的工具栏的阴影,我已经使用海拔属性,目前我的代码是 <android.support.design.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/transparent"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" /> </android.support.design.widget.AppBarLayout> <FrameLayout android:id="@+id/content_frame" android:layout_width="match_parent" android:layout_height="match_parent" /> </android.support.design.widget.CoordinatorLayout> 和输出是: – 这里我不想要下面的阴影,所以我设置 app:elevation="0dp" 到AppBarLayout,然后删除阴影,但汉堡菜单消失。 新的输出如下: 任何人都可以告诉我如何去除阴影,而不会隐藏/消失HamburgerMenu。

我可以为android-support-design小部件设置应用全局自定义样式吗?

我想为Android支持devise(如AppBarLayout,TextInputLayout,FAB …)中的一些小部件定义自定义样式,并将这些样式设置为我的项目的默认样式,就像我可以使用EditText和其他系统小部件一样。 举个例子: <style name="Theme.MyApp" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="android:editTextStyle">@style/Theme.MyApp.EditText</item> </style> <style name="Theme.MyApp.EditText" parent="Widget.AppCompat.EditText"> <item name="android:textColor">@color/my_awsome_edittext_color</item> <item name="android:layout_height">wrap_content</item> </style> 我目前的问题是设置为一个特定的活动,它有自己的主题的AppBarLayout高度=“0dp”。 检查Android支持deviseAppBarLayout源代码,我发现它有一个名为Widget.Design.AppBarLayout的主题,所以我做了: <style name="Theme.MyApp.AppBarLayout" parent="Widget.Design.AppBarLayout"> <item name="elevation">0dp</item> </style> 但是我没有find一个属性来将其设置在我的Theme.MyApp ,就像android:editTextStyle 。 对于TextInputLayout,FAB等来说也是如此。 这些小部件直接从资源中获取主题: TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.AppBarLayout, R.style.Widget_Design_AppBarLayout); 那么,真的没有办法用这种forms定义样式? 如果没有,有没有技术上的理由不提供这个function?

是否可以使用Android上的协调器布局将状态栏与工具栏一起滚动?

我想知道是否有可能滚动整个状态栏(图标和背景),而不仅仅是背景。 就好像它是工具栏的一部分一样。 我遇到了与下面的问题相同的情况,不同之处在于我想知道是否可以将整个状态栏滚动为背景不透明 – 这是我认为是以下查询所需的结果 Android状态栏上滚动协调员布局,留下状态图标重叠工具栏标题 这是一个graphics 这是我的代码 <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:context="me.hugopretorius.wishlizt.MainActivity"> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay" app:contentScrim="#000"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:layout_scrollFlags="scroll|enterAlways" app:popupTheme="@style/AppTheme.PopupOverlay" /> <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" /> </android.support.design.widget.AppBarLayout> <android.support.v4.view.ViewPager android:id="@+id/viewpager" app:layout_behavior="@string/appbar_scrolling_view_behavior" android:layout_width="match_parent" android:layout_height="fill_parent" android:layout_below="@id/tabs"/> <io.github.yavski.fabspeeddial.FabSpeedDial android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" app:fabGravity="bottom_end" app:fabMenu="@menu/menu_fab" app:miniFabBackgroundTint="@android:color/white" app:miniFabDrawableTint="?attr/colorPrimaryDark" app:miniFabTitleTextColor="?attr/colorPrimaryDark" /> </android.support.design.widget.CoordinatorLayout>

工具栏,工具栏,操作栏有什么区别? 什么时候使用它们呢?

Toolbar , Toolbar , Actionbar Toolbar什么区别? 什么时候使用它们呢? 我试图find他们,但它让我混淆,所以任何伙伴可以向我解释什么是他们之间的确切区别,何时使用它们,或者这是单一组件的相同名称?

在AppBarLayout中滚动第二个孩子

我试图获得这种效果,如果用户滚动一个RecyclerView一个布局向上滚动与回收站一起消失在Toolbar后面。 使用CoordinatorLayout可以获得类似的行为,这可以通过设置来实现 app:layout_behavior="@string/appbar_scrolling_view_behavior" 在说的回收,和做 <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.v7.widget.Toolbar android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_scrollFlags="scroll|enterAlways"/> </android.support.design.widget.AppBarLayout> 另外,如果我把第二个孩子放到AppBarLayout ,并且设置了app:layout_scrollFlags ,那么获得的效果是相同的,两个版面都和Recycler一起滚动。 我想要实现的是保持第一个孩子(工具栏)的位置固定,并让第二个孩子( LinearLayout )滚动和隐藏在工具栏后面。 不幸的是我无法做到这一点。 没有使用第三方零件库可能吗? 在此先感谢,并为我的英语感到抱歉。

如何在材质devise的ActionBar下获得进度条?

“ 进度”和“活动 ”的“ 材质devise”规范在几个区域中具体显示了一个水平进度指示器,它的厚度只有几个像素(下拉),低于我们现在调用ActionBar(可能是工具栏)的水平。 但是,我没有看到任何方法来实际实现Material Design的这一部分。 devise和现实之间似乎存在脱节。 为了使事情变得更加复杂,所有的经典方法(例如setProgressBarIndeterminateVisibility() )都被弃用或者消失(即no-ops)。 此外,在工具栏下方放置一个水平的ProgressBar会导致一个非常高的ProgressBar,我所能find的所有替代的AppCompat ProgressBar样式也太高了。 尝试将高度强制为“2dip”会导致构成ProgressBar内容的宽度缩小。 那么什么是正确的,内置的AppCompat兼容的方法来将一个Material Design兼容的水平ProgressBar放在工具栏或AppBarLayout的底部 ? 我更喜欢它在AppBarLayout的底部,因为我在工具栏后添加更多的东西,但在我的应用程序的AppBarLayout结束之前。 目前,我被放到工具栏的循环不确定的ProgressBar中,但它很大,有点难看。

带有工具栏和片段的CoordinatorLayout

我使用下面的布局, CoordinatorLayout里面保存着AppBarLayout (里面有Toolbar和TabLayout )和一个占位符RelativeLayout ,所以我可以在里面添加和replace片段。 我遇到了margin margin错误,我在RelativeLayout上添加的片段总是会超出屏幕底部(类似于AppBarLayout高度的大小),我尝试将其高度设置为wrap_content和match_parent ,在这两种情况下,它都会过度。 如果我从RelativeLayout删除app:layout_behavior="@string/appbar_scrolling_view_behavior" ,那么它的顶部将会在AppBarLayout ,这也不是所期望的结果。 <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/drawer_layout" android:layout_height="match_parent" android:layout_width="match_parent" android:fitsSystemWindows="true"> <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.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" app:layout_scrollFlags="scroll|enterAlways" /> <android.support.design.widget.TabLayout android:id="@+id/tabs" app:tabIndicatorHeight="4dp" app:tabIndicatorColor="#ffffff" app:tabMode="scrollable" android:visibility="gone" android:layout_width="match_parent" android:layout_height="wrap_content" /> </android.support.design.widget.AppBarLayout> <RelativeLayout app:layout_behavior="@string/appbar_scrolling_view_behavior" android:id="@+id/main_fragment_container" android:layout_width="match_parent" android:layout_height="wrap_content"/> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" […]

当NestedScrollView为空时停止AppBarLayout滚动屏幕

我有一个相当典型的列表function使用CoordinatorLayout,AppBarLayout,SwipeRefreshLayout和RecyclerView – 当RecyclerView有足够的内容滚动,页面看起来很好。 当RecyclerView为空或没有足够的内容滚动时,行为是appBarLayout子app:layout_scrollFlags="scroll|enterAlwaysCollapsed"将继续滚动 – 这看起来很奇怪。 有没有办法停止在NestedScrollView空的时候滚动的AppBarLayout子级? <?xml version="1.0" encoding="utf-8"?> <FrameLayout 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.support.design.widget.CoordinatorLayout android:id="@+id/coordinatorLayout" android:background="@android:color/transparent" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@android:color/transparent" android:elevation="4dp"> <LinearLayout android:id="@+id/eventHeader" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="16dp" android:background="@color/green" android:orientation="horizontal" app:layout_scrollFlags="scroll|enterAlwaysCollapsed"> <View android:layout_width="0dp" android:layout_height="0dp" android:layout_weight="1"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="scroll|enterAlwaysCollapsed" android:textColor="@color/white" android:textSize="15sp"/> <View android:layout_width="0dp" android:layout_height="0dp" android:layout_weight="1"/> </LinearLayout> </android.support.design.widget.AppBarLayout> <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/swipeToRefresh" android:layout_width="match_parent" android:layout_gravity="fill_vertical" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> […]

带有recyclerView的AppBarLayout嵌套片段

由于图像总是比单词好,我向你呈现我目前的布局 。 工具栏/选项卡位于具有viewPager的activity.xml中,而recyclerView位于viewPager内的片段内。 所以你可以左右滑动查看其他内容。 我的问题是,我想要AppBarLayout绑定到第一个片段的recyclerView的滚动行为,而不是其他片段。 在下面的代码中,我做了这个绑定,但它不起作用,因为recyclerView无法识别外部布局中的AppBarLayout。 你有这个解决方法吗? 活动代码: <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:fab="http://schemas.android.com/apk/res-auto" 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/toolbar_main" android:layout_width="match_parent" /* pretty stuff */ app:layout_scrollFlags="scroll|enterAlways"> <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" /* pretty stuff */ /> </android.support.v7.widget.Toolbar> </android.support.design.widget.AppBarLayout> <android.support.v4.view.ViewPager android:id="@+id/main_pager" android:layout_width="match_parent" android:layout_height="match_parent" /> <android.support.design.widget.SupportFloatingActionsMenu …> /* Code for a fancy fab w/ menu */ </android.support.design.widget.SupportFloatingActionsMenu> […]