Articles of 支持库

尝试了解Android支持库中的BottomSheet的行为23.2.1

我正在尝试在我的一个活动中实现Bottom表单,我对它的行为方式感到困惑! 所以这里是问题,我有一个活动,我试图展示底部表,我看到: 如果我们不设置app:behavior_peekHeight属性,那么底部工作表永远不会工作 如果您将PeekHeight设置为小于30dp(基本上只是将其隐藏起来) 如果你在布局文件中设置app:behavior_peekHeight为30dp以上,并尝试在你的onCreate方法STATE_HIDDEN bottomSheetBehavior的状态设置为STATE_HIDDEN ,那么你的应用程序会崩溃 造成的: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.ref.WeakReference.get()' on a null object reference at android.support.design.widget.BottomSheetBehavior.setState(BottomSheetBehavior.jav a:440) at myapp.activity.SomeActivity.onCreate(SomeActivity.java:75) 我真的很困惑,为什么不让我把它藏在onCreate? 或者为什么我们不能把peekHeight设置为0,这样它就不能在屏幕上看到,除非我们调用STATE_EXPANDED ,甚至不设置该属性应该默认隐藏! 或至less我应该能够将其设置为隐藏在我的onCreate! 我错过了什么? 还是BottomSheet刚性的行为? BottomSheet的布局文件是这样的: <LinearLayout 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:background="@android:color/white" android:layout_height="100dp" android:orientation="vertical" app:behavior_hideable="true" app:behavior_peekHeight="40dp" <!– I cant set this less than 30dp just to hide–> app:layout_behavior="@string/bottom_sheet_behavior" […]

当devise库更新到24.2.0时,BottomSheetBehavior不起作用

BottomSheetBehavior正常工作 compile 'com.android.support:design:24.1.1' 但是当我更新到24.2.0,这是行不通的。这是一个错误? 这是我的代码: <?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:fitsSystemWindows="true" > <LinearLayout android:id="@+id/llScroll" android:layout_width="match_parent" android:layout_height="200dp" android:orientation="vertical" android:background="@color/blue_1" app:layout_behavior="android.support.design.widget.BottomSheetBehavior"> </LinearLayout> </android.support.design.widget.CoordinatorLayout>

使用AppCompat-v7 22进行对话剥皮会导致api <21上的丑陋阴影

我正在使用AppCompat编写一个材料devise样式的应用程序。 由于AppCompat不会影响对话框,所以我正在为对话框蒙上一层阴影: styles.xml: <style name="AppTheme.Base" parent="Theme.AppCompat"> <!– Set AppCompat's color theming attrs –> <item name="colorPrimary">@color/green</item> <item name="colorPrimaryDark">@color/green_darker</item> <item name="colorAccent">@color/accent</item> <item name="android:alertDialogTheme">@style/alertDialog</item> <item name="android:dialogTheme">@style/alertDialog</item> </style> <style name="alertDialog" parent="Theme.AppCompat.Dialog"> <item name="colorPrimary">@color/green</item> <item name="colorPrimaryDark">@color/green_darker</item> <item name="colorAccent">@color/accent</item> </style> 我得到的正是我想要的android api> = 21,但在其他设备上,我最终与对话框周围的“框”。 有没有办法摆脱对话框中的“盒子”,甚至可以获得应用于api <21的颜色和材质主题,最好没有任何附加的依赖性? App上的Api <21: API> = 21的应用程序: