按照this question中的答案,我替换了支持v4库的ActionBarDrawerToggle
,该库在最新的update(rev 21)中已被ActionBarDrawerToggle
的最新support-v7 library
弃用。
现在,抽屉可以在Andrid Lollipop Emulator上运行,而不会出现弃用警告,但是当我在Jelly Bean真实设备上测试应用程序时,没有抽屉,也没有显示切换抽屉按钮。
此支持库更新到底带来了什么?我如何在不降级到先前版本的情况下解决此问题?
这是我的布局
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<!-- content view -->
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
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"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/drawer_text" />
</RelativeLayout>
<!-- nav drawer -->
<ListView
android:id="@+id/drawer"
android:layout_width="320dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#F3F3F4"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp" />
</android.support.v4.widget.DrawerLayout>
最佳答案
ActionBarDrawerToggle
v7正常工作,您需要从android.support.v7.app.ActionBarActivity
扩展Activity类ActionBarActivity
v7必须与Theme.AppCompat
支持库中的appcompat-v7:21
主题一起使用。 ActionBar
切换到ToolBar
,否则请勿在扩展<item name="windowActionBar">false</item>
时添加Theme.AppCompat
。这样做将使您的ActionBarActivity
没有默认的ActionBar
装饰,并且getSupportActionBar
将返回null。您需要提供自己的ToolBar
并首先调用setSupportActionBar
才能使getSupportActionBar
工作。 关于android - 用support.v7版本替换不推荐使用的android.support.v4.app.ActionBarDrawerToggle,导致抽屉在Jelly Bean上不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26442135/