Articles of android coordinatorlayout

Android – 协调器布局,抽屉布局和片段

我花了一些时间试图实现这一点,并做了我的一点研究,但不能使其工作。 在Chris Banes的cheesesquare例子中,当ViewPager滚动时,他使工具栏滚动。 ViewPager直接包含在他的抽屉布局中,就在NaviagtionView之前。 <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"> <!– THIS CONTAINS COORDINATOR LAYOUT with APPBAR LAYOUT + VIEWPAGER –> <include layout="@layout/include_list_viewpager"/> <android.support.design.widget.NavigationView android:id="@+id/nav_view" android:layout_height="match_parent" android:layout_width="wrap_content" android:layout_gravity="start" android:fitsSystemWindows="true" app:headerLayout="@layout/nav_header" app:menu="@menu/drawer_view"/> </android.support.v4.widget.DrawerLayout> include_list_viewpager文件是这样的: <?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout 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:layout_scrollFlags="scroll|enterAlways" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> <android.support.design.widget.TabLayout android:id="@+id/tabs" […]

CoordinatorLayout中的第三方FloatingActionButton库

我正在尝试使用futuresimple的FloatingActionButton库在CoordinatorLayout使用FloatingActionMenu因此当我显示一个Snackbar ,FAB将向上移动,而不会被Snackbar隐藏。 FloatingActionMenu工作正常,虽然我注意到第三方库不在CoordinatorLayout内工作。 当我使用来自Google的支持库FAB时, CoordinatorLayout按照预期工作,虽然FutureSimple的库不是。 (它被Snackbar隐藏)。 我如何使第三方库与CoordinatorLayout工作? fragment_comic.xml <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:text="@string/default_title" android:textAppearance="?android:textAppearanceLarge" android:layout_centerHorizontal="true" /> <TextView android:id="@+id/alt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/title" android:layout_centerHorizontal="true" android:layout_gravity="center_horizontal" android:fadeScrollbars="false" android:gravity="center" android:maxLines="4" android:textColor="@color/black" android:paddingBottom="13dp" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:scrollbars="vertical" android:text="@string/default_alt" android:textAppearance="?android:textAppearanceMedium" /> <ImageView android:id="@+id/imageView" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/alt" android:adjustViewBounds="false" android:layout_marginBottom="10dp" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:scaleType="fitCenter" /> </RelativeLayout> <com.getbase.floatingactionbutton.FloatingActionsMenu android:id="@+id/famMain" android:layout_width="wrap_content" […]

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>

adjustResize不适用于CoordinatorLayout

我在我的android应用程序中有以下布局,但是我在活动中有一个windowSoftInputMode="adjustResize"的问题:名为“container”的LinearLayout包含多个EditTexts但是当其中一个具有焦点并且键盘出现时, Activity不会resize而EditText隐藏在键盘后面。 我认为这与CoordinatorLayout但我无法弄清楚它有什么问题。 <?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/main_content" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:background="#F0f0f0"> <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:fitsSystemWindows="true"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_scrollFlags="scroll" app:contentScrim="?attr/colorPrimary"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@color/colorPrimary" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" app:layout_collapseMode="parallax"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_marginTop="?attr/actionBarSize" android:padding="15dp"> <android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp"> <EditText android:id="@+id/titleEditText" android:layout_width="match_parent" android:layout_height="wrap_content" android:maxLength="60" android:hint="Title"/> </android.support.design.widget.TextInputLayout> <android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:layout_marginBottom="10dp"> […]

协调员布局,工具栏下方的活动

我有一个协调器布局的应用程序,在协调器布局中使用滑动选项卡和视图页面。 我正在尝试在工具栏下放置一个活动(列表)。 我已经尝试了许多不同的东西,但总是列表重叠工具栏。 布局 <?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" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:context=".MainActivity"> <LinearLayout 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="wrap_content" android:orientation="vertical" > <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorPrimary" android:fitsSystemWindows="true" android:minHeight="?attr/actionBarSize" android:padding="2dp" app:titleMarginStart="20dp" android:theme="@style/AppTheme.AppBarOverlay"/> <com.passwordstore.utility.SlidingTabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/colorPrimary" /> <View android:layout_width="match_parent" android:layout_height="4dp" android:background="@android:color/white" android:foreground="@drawable/shadow"/> <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"> </android.support.v4.view.ViewPager> </LinearLayout> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" android:id="@+id/frameLayout"> […]

Android NestedScrollViewalignment顶部的内容

我发现CoordinatorLayout中的NestedSCrollView中的内容总是在底部alignment,如果它不填满整个屏幕。 我该如何解决这个问题? 我的代码: <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:card_view="http://schemas.android.com/tools" 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="140dp" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" android:fitsSystemWindows="true"> <android.support.design.widget.CollapsingToolbarLayout android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" app:layout_scrollFlags="scroll|exitUntilCollapsed" app:contentScrim="?attr/colorPrimary" app:expandedTitleMarginStart="48dp" app:expandedTitleMarginEnd="64dp"> <android.support.v7.widget.Toolbar android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" app:layout_collapseMode="pin" /> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" app:layout_anchorGravity="top|start" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingTop="24dp" android:orientation="vertical"> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="200dp" android:layout_marginTop="10dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" card_view:cardBackgroundColor="@color/white" card_view:cardElevation="2sp" card_view:cardUseCompatPadding="true"> </android.support.v7.widget.CardView> <ListView android:layout_height="match_parent" android:layout_width="match_parent" […]

在onTouchEvent中的CoordinatorLayout NullPointerException

我正在获取CoordinatorLayout onTouchEvent的NullPointerException 。 我正在使用DrawerLayout与Android支持AppCompat v23.0.0库的CollapsingToolbarLayout 。 我的观察是在滚动CollapsingToolbarLayout或点击抽屉项目时随机发生崩溃。 有没有人遇到这个问题? 任何工作,以避免这种exception? logcat的: 08-22 15:16:34.657: E/AndroidRuntime(27596): java.lang.NullPointerException: Attempt to invoke virtual method 'float android.view.MotionEvent.getX()' on a null object reference 08-22 15:16:34.657: E/AndroidRuntime(27596): at android.view.View.onTouchEvent(View.java:9321) 08-22 15:16:34.657: E/AndroidRuntime(27596): at android.support.design.widget.CoordinatorLayout.onTouchEvent(CoordinatorLayout.java:449) 08-22 15:16:34.657: E/AndroidRuntime(27596): at android.view.View.dispatchTouchEvent(View.java:8388) 08-22 15:16:34.657: E/AndroidRuntime(27596): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2398) 08-22 15:16:34.657: E/AndroidRuntime(27596): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2158) 08-22 15:16:34.657: E/AndroidRuntime(27596): at […]

FAB与协调器布局中的锚在android预棒棒糖中有额外的余量

我有一个FloatingActionButton CoordinatroLayout 。 这是我的代码: <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:layout_below="@+id/toolbar_layout" android:layout_above="@+id/actionbar"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="120dp" android:minHeight="?android:attr/actionBarSize" android:background="@color/toolbar_color" /> <ScrollView android:layout_width="match_parent" android:layout_height="wrap_content" > </ScrollView> </LinearLayout> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:clickable="true" app:fabSize="mini" android:src="@mipmap/ic_action_edit" app:layout_anchor="@id/toolbar" app:layout_anchorGravity="bottom|right|end" app:backgroundTint="@color/toolbar_color" /> </android.support.design.widget.CoordinatorLayout> 但是在棒棒糖和棒棒糖设备中看起来不一样。 棒糖: 预棒棒糖: 其实我没有添加任何保证金。 但是FAB在前棒棒糖设备上有余量。 在cheessesquare样本中我也看到了这个问题。 它也显示了不同的利润。 问题是什么?

在处理滚动片段和非滚动片段时,CoordinatorLayout应该放置在Activity还是Fragment中?

在CoordinatorLayout 的例子中,它总是放在Activity中,而Fragments都是滚动的。 想象一个场景是合理的,尽pipe其中一些被加载的片段是可滚动的,而一些片段不是,但是它们被加载到活动中的相同占位符中。 在这种情况下,CoordinatorLayout应该放置在Activity还是在Fragments中? 一方面,因为你指定工具栏作为它的一个孩子,它似乎应该都在活动。 另一方面,如果在同一个占位符中同时加载了滚动和非滚动片段,那么这似乎很难configuration(例如,您为Fragment占位符指定了哪些滚动行为?),所以它似乎应该生活在片段。 不过,在这种情况下,每个片段都必须重新设置工具栏吗?

CoordinatorLayout搞乱setErrorpopup位置

我遇到了EditText setErrorpopup位置的问题。 我正在使用下面的代码来创build布局: activity_profile.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" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:context=".ProfileActivity" android:orientation="vertical"> <android.support.design.widget.AppBarLayout android:layout_height="wrap_content" android:layout_width="match_parent" android:theme="@style/AppTheme.AppBarOverlay"> <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/AppTheme.PopupOverlay" /> </android.support.design.widget.AppBarLayout> <include layout="@layout/profile" /> </android.support.design.widget.CoordinatorLayout> 是profile.xml <RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context=".ProfileActivity" tools:showIn="@layout/activity_profile"> <EditText android:id="@+id/etProfileName" android:layout_width="match_parent" android:layout_height="50dp" android:capitalize="words" android:hint="@string/et_hint_profile_name" android:textAlignment="center" /> </RelativeLayout> […]