Una possibile soluzione
attività:
import android.os.Bundle;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
public class MainActivity extends AppCompatActivity
{
DrawerLayout drawerLayout;
ActionBarDrawerToggle toggle;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
toggle = new ActionBarDrawerToggle
(
this,
drawerLayout,
R.string.navigation_drawer_open,
R.string.navigation_drawer_close
)
{
};
drawerLayout.setDrawerListener(toggle);
toggle.syncState();
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
if (toggle.onOptionsItemSelected(item))
{
return true;
}
return super.onOptionsItemSelected(item);
}
}
Disposizione:
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ListView
android:id="@+id/list_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#f1f2f7"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent" />
</android.support.v4.widget.DrawerLayout>
Stile:
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
</style>
</resources>
E 'importante che la vostra applicazione ereditano il tema AppCompat.
Se è stato sostituito l'ActionBar da una barra degli strumenti non dimenticate di rimettere l'ActionBar rimuovendo questa linea nel styles.xml:
<item name="windowActionBar">false</item>
Gradle:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:support-v4:22.1.1'
compile 'com.android.support:appcompat-v7:22.1.1'
}
ho messo questo codice su github: https://github.com/bbouabou/AppCompatActivity-With-ActionBarDrawerToggle.
fonte
2015-04-27 22:39:55
Per curiosità - chi sta dicendo che * "non è più necessario avere una vista della barra degli strumenti nel nostro layout delle attività" *? Non riesco a trovare alcun riferimento per questo. – reVerse
Il nuovo 'AppCompatActivity' dispone già di una barra degli strumenti (che credo possa essere rimossa/nascosta se lo si desidera), quindi non è necessario aggiungerne un'altra – Guilherme
L'appCompatActivity presenta un' ActionBar' per impostazione predefinita. Devi ancora modificare il tema in 'Theme.AppCompat.NoActionBar' e aggiungere una' Toolbar' al tuo layout. – reVerse