Articles of androiddesigns支持

我可以为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?

具有SnackBar和CoordinatorLayout的FloatingActionButton将不适用于proguard

启用proguard时,这段简单的代码将无法正常工作: <?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/coordinator_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:id="@+id/show" android:layout_width="200dp" android:layout_height="wrap_content" android:layout_gravity="top" android:layout_marginTop="40dp" android:text="Show snackbar" /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|right" android:layout_margin="16dp" android:src="@drawable/ic_save_white_24dp" app:layout_anchorGravity="bottom|right|end" /> </android.support.design.widget.CoordinatorLayout> 期望的行为是当FloatingActionButton在显示时被推到SnackBar ,但是直到禁用了proguard才会发生。 没有教程也涵盖了这一点,因为新项目默认情况下禁用了proguard;) 有没有人知道devise支持库的proguardconfiguration?

CollapsingToolbarLayout和NestedScrollView不起作用

我想用NestedScrollView实现CollapsingToolbarLayout,它在底部的NestedScrollView中显示TextView,不允许滚动或折叠工具栏。 我已经得到这个与RecyclerView,但不是NestedScrollView。 当我删除app:layout_behavior="@string/appbar_scrolling_view_behavior工具栏崩溃,但NestedScrollView不低于AppBarLayout。任何解决scheme或build议,以解决这个问题? XML <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.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="Hello" android:textColor="#000" android:textSize="16sp"/> </LinearLayout> </android.support.v4.widget.NestedScrollView> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <ImageView android:id="@+id/backdrop" android:layout_width="match_parent" android:layout_height="134dp" android:background="@color/primary" app:layout_collapseMode="parallax"/> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_collapseMode="pin"/> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> </android.support.design.widget.CoordinatorLayout> 结果

带有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> […]

与提示一起在EditText下面显示帮助文本

我正在尝试在这些方面做些事情: 我能够使用android:hint="Email Address"显示android:hint="Email Address"但无法显示帮助文本 – 这将是您的电子邮件用户名 <android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <EditText android:id="@+id/et_username" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="15" android:hint="Username" app:et_helper="Username is preferably your registered email"/> </android.support.design.widget.TextInputLayout>` 我得到的是只有和没有用户名最好是您的注册电子邮件下面edittext: 输出: 任何指针赞赏。 谢谢。

工具栏内的TabLayout

我想用新的devise支持库实现一定的外观,我不能停止看到一个奇怪的错误。 这里是所需输出的屏幕录像 (不是用DSL完成的)和我使用DSL获得的输出 。 工具栏+选项卡是在一个viewpager活动,并且recyclerView是在viewpager内的一个片段(实际上是适配器,但你明白了我的观点) 活动代码: <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" android:layout_height="?attr/actionBarSize" android:elevation="4dp" app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" app:layout_scrollFlags="scroll|enterAlways"> <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabIndicatorColor="@color/white" app:tabTextColor="@color/selected_text" app:tabSelectedTextColor="@color/white"/> </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" app:layout_behavior="@string/appbar_scrolling_view_behavior"/> <android.support.design.widget.SupportFloatingActionsMenu …> /* Code for a fancy fab w/ menu */ </android.support.design.widget.SupportFloatingActionsMenu> </android.support.design.widget.CoordinatorLayout> 对于包含recyclerView的片段: <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" […]

禁用工具栏滚动

我有当前的设置: <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/coordiator_layout_in_main" 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.support.v7.widget.Toolbar android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?attr/actionBarSize" app:layout_scrollFlags="scroll|enterAlways"/> </android.support.design.widget.AppBarLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <android.support.design.widget.NavigationView android:layout_width="170dp" android:layout_height="match_parent" android:fitsSystemWindows="true"/> <FrameLayout // I place a fragment containing a viewpager containing fragments that contain a recyclerview…. android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_toRightOf="@+id/nav_view"> </FrameLayout> </RelativeLayout> <FrameLayout android:id="@+id/settings_frame" android:layout_width="match_parent" android:layout_height="match_parent" android:visibility="invisible"> </FrameLayout> <android.support.design.widget.FloatingActionButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_refresh" app:layout_anchor="@id/coordiator_layout_in_main" […]

在BottomNavigationView中设置最初select的项目索引/ ID

我已经实现了新的BottomNavigationView (com.android.support:design:25.0.0),不知道如何设置select索引或MenuItem id(在我的情况下,中间项目应该被选中默认情况下)。 恐怕现在没有这样的可能性,只要它太原始了,但无论如何,任何帮助将不胜感激。 谢谢!

当EditText变得焦点时,CollapsingToolbarLayout不会崩溃

我在CoordinatorLayout使用CollapsingToolBar ,而且我的NestScrollView包含一些EditText作为子视图。 我所面对的是当edittext得到关注和keybaoard出现我的完整视图不向上滚动。 以下是代码和图像作为该布局的输出。 <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="@dimen/app_bar_height" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar" android:layout_width="match_parent" android:layout_height="match_parent" app:expandedTitleMarginEnd="64dp" app:expandedTitleMarginStart="48dp" app:contentScrim="?attr/colorPrimary" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <ImageView android:id="@+id/ivProductImage" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="centerCrop" android:src="@drawable/stub_image" app:layout_collapseParallaxMultiplier="0.7" app:layout_collapseMode="parallax" /> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_collapseMode="pin" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v4.widget.NestedScrollView android:id="@+id/nested_scroll_view" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <LinearLayout android:id="@+id/containerLayout" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="10dp"> <EditText android:id="@+id/etProductTitle" style="@style/EditTextStyle" […]

devise支持TabLayout

我正在玩devise支持库TabLayout。 我的问题是其中一个选项卡的标题太长,所以,它被绘制在2行而不是1.我想知道是否有一种方法缩放标题的文字大小,以确保所有标题绘制在1行。 下面是一个截图,以更好地解释我的问题: 如果细节很重要,我使用devise支持TabLayout,一个ViewPager和一个FragmentPagerAdapter来填充我的选项卡。 提前致谢!