Articles of android support design

带有阴影的Android底部导航栏

我正在使用Google的支持devise库v25.1.0在Android应用程序中实现底部导航栏 。 有什么方法可以添加投影效果,与当前的Android本机Google相册应用程序相同?

包装SnackBar上的内容高度

有什么办法让一个SnackBar包装其文本内容? 你可以查看我的问题如下: 正如你所看到的文本结束于“联系我们…”,它应该显示整个消息。 谢谢!

与所有活动共享NavigationView?

我们如何与所有的活动共享Drawer ? 在lister: onNavigationItemSelected的setNavigationItemSelectedListener我们可以得到id并导航到它。 我正在寻找的东西是这样的: private void initDrawerLayout() { drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); NavigationView navView = (NavigationView) findViewById(R.id.navigation_view); navView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(MenuItem menuItem) { Intent intent; int id = menuItem.getItemId(); switch(id) { case R.id.home: case R.id.drawer_home: // call activity instead of adding/replacing fragment return true; case R.id.drawer_gallery: // call activity instead of […]

在更新到支持工具之后,再次获取java.lang.NoClassDefFoundError:android.support.v7.internal.view.menu.i

我已经使用4.2.2手机实现了https://code.google.com/p/android/issues/detail?id=78377上列出的许多解决scheme之一,但现在我已经更新了支持工具23这个问题已经回来了。 如果你看看这个问题报告,你会看到有很多人在更新后遇到同样的问题。 NoClassDefFoundError:android.support.v7.internal.view.menu.MenuBuilder上的解决scheme也不起作用,因为它们来自https://code.google.com/p/android/issues/detail?id=78377 这是我得到的exception: java.lang.NoClassDefFoundError: android.support.v7.internal.view.menu.i at android.support.v7.widget.ActionMenuView.getMenu(ActionMenuView.java:643) at android.support.v7.widget.Toolbar.ensureMenu(Toolbar.java:876) at android.support.v7.widget.Toolbar.getMenu(Toolbar.java:847) at android.support.v7.internal.widget.ToolbarWidgetWrapper.getMenu(ToolbarWidgetWrapper.java:702) at android.support.v7.internal.app.ToolbarActionBar.getMenu(ToolbarActionBar.java:583) at android.support.v7.internal.app.ToolbarActionBar.populateOptionsMenu(ToolbarActionBar.java:441) at android.support.v7.internal.app.ToolbarActionBar$1.run(ToolbarActionBar.java:65) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:776) at android.view.Choreographer.doCallbacks(Choreographer.java:579) at android.view.Choreographer.doFrame(Choreographer.java:547) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:762) at android.os.Handler.handleCallback(Handler.java:800) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:194) at android.app.ActivityThread.main(ActivityThread.java:5391) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) at dalvik.system.NativeStart.main(NativeStart.java) 我的proguard有这样的: -keep class !android.support.v7.internal.view.menu.**,android.support.** {*;} 任何解决scheme 得到很多用户的投诉。

NoClassDefFoundError:Android 4.2.2上的android.support.design.internal.NavigationMenu(wiko)

我正在尝试使用Android支持devise库(在版本23.0.1)和类NavigationMenu (我使用这个类作为一个XML标签到布局)。 当我在Android 4.3上执行我的应用程序在三星上或在Android 5.x或6.0上的Nexus一切运作良好,但是当我在Android 4.2.2 Wiko彩虹上执行应用程序,它崩溃与以下例外: java.lang.RuntimeException: Unable to start activity ComponentInfo{applicationId/package.MainActivity}: android.view.InflateException: Binary XML file line #11: Error inflating class <unknown> […] Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class <unknown> Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.constructNative(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:417) at android.view.LayoutInflater.createView(LayoutInflater.java:587) […] Caused by: java.lang.NoClassDefFoundError: android.support.design.internal.NavigationMenu at android.support.design.widget.NavigationView.<init>(NavigationView.java:99) at android.support.design.widget.NavigationView.<init>(NavigationView.java:92) […]

BottomNavigationView始终显示图标和文本标签

我从devise支持库版本25使用android.support.design.widget.BottomNavigationView compile 'com.android.support:design:25.0.0' <android.support.design.widget.BottomNavigationView android:id="@+id/bottomBar" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_gravity="center" app:itemBackground="@color/colorPrimary" app:menu="@menu/bottom_navigation_main" android:forceHasOverlappingRendering="true"/> 当在@ menu / bottom_navigation_main中只有三个动作时,它总是显示图标和文本标签。 当有三个以上的动作时,一直显示图标和文字标签的方法是什么?

隐藏滚动的内容而不是工具栏的TabLayout

我想在滚动我的内容时隐藏TabLayout。 目前我search的网,但我发现隐藏工具栏的样本,但我想隐藏TabLayout。 所以请帮助我。 我尝试了下面的代码。 <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/id_appbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:fitsSystemWindows="true"> <android.support.v7.widget.Toolbar android:id="@+id/id_toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_scrollFlags="scroll|enterAlways"/> <android.support.design.widget.TabLayout android:id="@+id/id_tabs" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" style="@style/MyCustomTabLayout"/> </android.support.design.widget.AppBarLayout> <android.support.v4.view.ViewPager android:id="@+id/id_viewpager" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> </android.support.design.widget.CoordinatorLayout> 以下是示例应用程序: https : //play.google.com/store/apps/details ? id = com.contextlogic.wish https://play.google.com/store/apps/details?id = co.vine .android

无法在TabLayoutdevise支持库中查看Tab Indicator

我正在使用Material Design库并使用CoordinatorLayout ,AppBarLayout, RecyclerView和TabLayout创build布局。 我的问题是我无法看到Tablayout Tab指标。下面是我在AppCompactActivity使用的XML文件。 <android.support.design.widget.CoordinatorLayout android:id="@+id/coodinate_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/btn_next_screen"> <android.support.v7.widget.RecyclerView android:id="@+id/list_recycle" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginBottom="30dp" android:background="@color/white" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> <android.support.design.widget.AppBarLayout android:id="@+id/abar_layout" android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar_home" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorPrimary" android:minHeight="?attr/actionBarSize" app:layout_scrollFlags="scroll|enterAlways" > </android.support.v7.widget.Toolbar> <android.support.design.widget.TabLayout android:id="@+id/tab_layout" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabBackground="@color/tab_bg" app:tabIndicatorColor="@color/tab_indicator" app:tabIndicatorHeight="5dp" app:tabMode="fixed" ></android.support.design.widget.TabLayout> </android.support.design.widget.AppBarLayout> <android.support.design.widget.FloatingActionButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="15dp" app:layout_anchor="@+id/list_recycle" app:layout_anchorGravity="bottom|right" android:id="@+id/floatin_ab_home" app:fabSize="mini" android:src="@drawable/ic_content_add" /> </android.support.design.widget.CoordinatorLayout> 下面是不显示选项卡指标的屏幕,所以任何一个可以知道我失踪。

devise支持库 – 与SDK v21一起使用哪个版本

我有问题了解支持库的版本scheme以及何时使用哪个版本。 目前我有一个项目与compileSdkVersion 21 , minSdkVersion 21和targetSdkVersion 21并希望使用androiddevise支持库。 当我使用com.android.support:design:22.2.0项目编译,但我得到一个Gradle警告: "This support library should not use a different version (22) than the `compileSdkVersion` (21)". 当我使用com.android.support:design:23.0.1我得到一些编译错误,如: "Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'. 只要compileSdkVersion低于或等于,我想我总是可以使用最高版本的支持库,但这似乎是错误的。 编译API级别21时可以使用devise支持库吗?

Android SupportLib – CoordinatorLayout中的FrameLayout与AppBarLayout消耗整个屏幕高度

我目前在Androiddevise支持库的CoordinatorLayout遇到FrameLayout问题,而我在创build选项卡时遵循了这篇文章中的说明。 基本上大部分的东西是按照预期工作的,容器的片段被膨胀到FrameLayout并且他们的tab片段被作为制表符添加到ViewPager中(需要这种方式,因为我有许多应该重用布局的片段)。 我挣扎的问题是FrameLayout (并因此也是Tab-fragments)消耗整个屏幕高度,所以它重叠Toolbar和TabLayout 。 为了可视化问题,我创build了以下图像: 带有CoordinatorLayout , Toolbar和TabLayout基本布局: <android.support.design.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <include layout="@layout/toolbar" /> <android.support.design.widget.TabLayout android:id="@+id/tabLayout" android:layout_width="match_parent" android:layout_height="wrap_content" /> </android.support.design.widget.AppBarLayout> <FrameLayout android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" /> </android.support.design.widget.CoordinatorLayout> 将碎片用于container单独布局: <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_height="match_parent" android:layout_width="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 所有片段都被我的BaseFragment类(在SO上的另一个post上调用inflater.inflate(getLayoutRes(), null);膨胀inflater.inflate(getLayoutRes(), null);是造成同样问题的问题) @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(getLayoutRes(), container, […]