按照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/

    10-10 05:13