Questions tagged «android-support-library»

Android支持库包含来自较新平台的反向移植API和提供实用程序功能的API。

7
什么是CoordinatorLayout?
刚刚查看了新的Android支持设计库的演示应用程序。由Chris Banes在github上提供。在整个应用程序中,CoordinatorLayout已大量使用。此外,许多支持设计库类如FloatingActionButton,SnackBar,AppBarLayout等不同的行为时使用的内部CoordinatorLayout。 有人可以说明什么是什么CoordinatorLayout以及它与ViewGroupandroid中其他系统有何不同,或者至少提供正确的学习途径CoordinatorLayout。

1
android工具栏popupTheme vs theme
我经常在布局文件中看到以下Toolbar声明: <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"> </android.support.v7.widget.Toolbar> 为什么有两个与主题相关的属性:主题和popupTheme? 他们每个人的目的是什么?


14
将BottomSheetDialogFragment的状态设置为展开
如何使用Android支持设计库(v23.2.1)设置扩展BottomSheetDialogFragment为扩展的片段的状态BottomSheetBehavior#setState(STATE_EXPANDED)? https://code.google.com/p/android/issues/detail?id=202396说: 首先将底页设置为STATE_COLLAPSED。如果要扩展它,请调用BottomSheetBehavior#setState(STATE_EXPANDED)。请注意,您不能在视图布局之前调用该方法。 该建议的做法需要将第一膨胀的观点,但我不知道我怎么会设置BottomSheetBehaviour到片段(BottomSheetDialogFragment)。 View bottomSheet = coordinatorLayout.findViewById(R.id.bottom_sheet); BottomSheetBehavior behavior = BottomSheetBehavior.from(bottomSheet);

16
在棒棒糖崩溃前使用android矢量Drawables
我在Lollipop之前在Android中使用矢量可绘制对象,这些是我的某些库和工具版本: Android Studio:2.0 Android Gradle插件:2.0.0 编译工具:23.0.2 Android支持库:23.3.0 我在应用程序级别添加了此属性 Build.Gradle android { defaultConfig { vectorDrawables.useSupportLibrary = true } } 还值得一提的是,我使用了一个额外的可绘制对象,例如Android官方博客(此处的链接)中所述的LayerDrawable(layer_list),用于为外部的矢量可绘制对象设置可绘制对象app:srcCompat <level-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/search"/> </level-list> 您会发现直接引用app:srcCompat之外的矢量可绘制对象将在Lollipop之前失败。但是,当在另一个可绘制容器(例如StateListDrawable,InsetDrawable,LayerDrawable,LevelListDrawable和RotateDrawable)中引用矢量可绘制对象时,AppCompat确实支持加载矢量可绘制对象。通过使用这种 间接方式,您可以在诸如TextView的android:drawableLeft属性之类的情况下使用矢量可绘制对象,该属性通常无法支持矢量可绘制对象。 当我使用时,app:srcCompat一切正常,但是当我使用时: android:background android:drawableLeft android:drawableRight android:drawableTop android:drawableBottom 上ImageView,ImageButton,TextView或EditText之前棒棒糖,它引发厚望: Caused by: android.content.res.Resources$NotFoundException: File res/drawable/search_toggle.xml from drawable resource ID #0x7f0200a9

3
使用SpanSizeLookup在GridLayoutManager中设置项目的跨度
我想用节标题实现类似网格的布局。想想https://github.com/TonicArtos/StickyGridHeaders 我现在应该做什么: mRecyclerView = (RecyclerView) view.findViewById(R.id.grid); mLayoutManager = new GridLayoutManager(getActivity(), 2); mLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) { switch(mAdapter.getItemViewType(position)){ case MyAdapter.TYPE_HEADER: return 1; case MyAdapter.TYPE_ITEM: return 2; default: return -1; } } }); mRecyclerView.setLayoutManager(mLayoutManager); 现在常规项目和页眉的跨度大小均为1。如何解决此问题?

30
将Android支持库更新为23.2.0导致错误:XmlPullParserException二进制XML文件行#17 <vector>标签需要viewportWidth> 0
我尝试将支持库更新到23.2.0,并遇到此错误: Exception while inflating &lt;vector&gt; org.xmlpull.v1.XmlPullParserException: Binary XML file line #17&lt;vector&gt; tag requires viewportWidth &gt; 0 at android.support.graphics.drawable.VectorDrawableCompat.updateStateFromTypedArray(VectorDrawableCompat.java:535) at android.support.graphics.drawable.VectorDrawableCompat.inflate(VectorDrawableCompat.java:472) at android.support.graphics.drawable.VectorDrawableCompat.createFromXmlInner(VectorDrawableCompat.java:436) at android.support.v7.widget.AppCompatDrawableManager$VdcInflateDelegate.createFromXmlInner(AppCompatDrawableManager.java:829) at android.support.v7.widget.AppCompatDrawableManager.loadDrawableFromDelegates(AppCompatDrawableManager.java:303) at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:178) at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:173) at android.support.v7.widget.TintTypedArray.getDrawable(TintTypedArray.java:60) at android.support.v7.widget.Toolbar.&lt;init&gt;(Toolbar.java:254) at android.support.v7.widget.Toolbar.&lt;init&gt;(Toolbar.java:196) at java.lang.reflect.Constructor.constructNative(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:417) at android.view.LayoutInflater.createView(LayoutInflater.java:594) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696) at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) at android.view.LayoutInflater.inflate(LayoutInflater.java:492) at …

8
在工具栏上显示ActionMode
除了传统的,我正在尝试将android.view.ActionMode搭配新android.support.v7.widget.Toolbar的android.app.ActionBar。我可以显示它: toolbar.startActionMode(callback); 问题是ActionMode会在上方显示ActionBar,而不是在上方显示Toolbar。有办法改变吗? 我尝试在主题中设置以下内容,但似乎没有任何改变: &lt;item name="windowActionModeOverlay"&gt;true&lt;/item&gt;

25
膨胀类android.support.design.widget.NavigationView时出错
我遵循了支持设计库中新组件NavigationView的教程,无法通过以下错误消息获取信息: Error inflating class android.support.design.widget.NavigationView 我在这里尝试了所有解决方法 使用任何Android设计支持库元素时发生错误 但是错误消息仍然存在。 XML文件 &lt;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_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" &gt; &lt;RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" &gt; &lt;include layout="@layout/toolbar" android:id="@+id/mainToolBar" /&gt; &lt;fragment android:name="com.ais.cherry.fragment.LoginFragment" android:id="@+id/loginFragment" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/mainToolBar" /&gt; &lt;fragment android:name="com.ais.cherry.fragment.WaterFallFragment" android:id="@+id/mainFragment" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/mainToolBar" /&gt; &lt;fragment android:name="com.ais.cherry.fragment.SearchFragment" android:id="@+id/searchFragment" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/mainToolBar" /&gt; &lt;fragment android:name="com.ais.cherry.fragment.ChatMainFragment" android:id="@+id/chatMainFragment" android:layout_width="match_parent" …

12
Android片段。在屏幕旋转或配置更改期间保留AsyncTask
我正在开发一个智能手机/平板电脑应用程序,仅使用一个APK,并根据屏幕大小加载所需的资源,最好的设计选择似乎是通过ACL使用片段。 到目前为止,此应用程序一直运行良好,仅基于活动。这是一个模拟类,它说明了我如何处理“活动”中的AsyncTasks和ProgressDialogs以便即使在屏幕旋转或通信过程中发生配置更改时也能正常工作的情况。 我不会更改清单以避免活动的重演,我有很多理由不愿意这样做,但主要是因为官方文档说不建议这样做,而且到目前为止,我已经设法不使用它了,所以请不要建议路线。 public class Login extends Activity { static ProgressDialog pd; AsyncTask&lt;String, Void, Boolean&gt; asyncLoginThread; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.login); //SETUP UI OBJECTS restoreAsyncTask(); } @Override public Object onRetainNonConfigurationInstance() { if (pd != null) pd.dismiss(); if (asyncLoginThread != null) return (asyncLoginThread); return super.onRetainNonConfigurationInstance(); } private void …


16
Android多行小吃店
我正在尝试利用SnackbarAndroid设计支持库中的新功能来显示多行快餐栏,如http://www.google.com/design/spec/components/snackbars-toasts.html#snackbars-toasts-specs所示: import android.support.design.widget.Snackbar; final String snack = "First line\nSecond line\nThird line"; Snackbar.make(mView, snack, Snackbar.LENGTH_LONG).show(); 它仅显示First line...在我的Nexus 7上。如何使其显示所有行? PS:我尝试过Toast,它显示了所有行。




By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.