问题
Following the answer in this question i have replaced ActionBarDrawerToggle
of support v4 library that in latest update(rev 21) has been deprecated with the latest ActionBarDrawerToggle
of support-v7 library
.
Now the drawer works on Andrid Lollipop Emulator without deprecation warnings but when I test the app on a Jelly Bean real device no drawer and no toggle drawer button is shown.
What the hell appened with this support library update? How could I fix this issue without downgrade to previous version?
Here my layout
<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>
回答1:
- To get
ActionBarDrawerToggle
v7 to work properly you need to extends your Activity class fromandroid.support.v7.app.ActionBarActivity
ActionBarActivity
v7 must be used withTheme.AppCompat
theme from theappcompat-v7:21
support library.- Unless you want to switch from
ActionBar
toToolBar
, don't add<item name="windowActionBar">false</item>
when extendingTheme.AppCompat
. Doing so will make yourActionBarActivity
have no defaultActionBar
decor, andgetSupportActionBar
will return null. You'll need to provide your ownToolBar
and callsetSupportActionBar
first to makegetSupportActionBar
work.
来源:https://stackoverflow.com/questions/26442135/replace-deprecated-android-support-v4-app-actionbardrawertoggle-with-support-v7