gpt4 book ai didi

android - 使用 AppCompatActivity 时的新 ActionBarDrawerToggle

转载 作者:可可西里 更新时间:2023-11-01 18:44:20 24 4
gpt4 key购买 nike

今天 Google 将 AppCompat 库更新到 22.1.0 版,我们现在可以使用 AppCompatActivity 而不是 ActionBarActivity。这意味着我们的 Activity 布局中不再需要 Toolbar View 。

问题是,为了创建抽屉切换按钮,我不能再使用 new ActionBarDrawerToggle,因为它需要一个 Toolbar 参数,而该参数将不存在。

我现在应该如何将切换按钮添加到 ActionBar?

最佳答案

可能的解决方案

Activity :

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);
}
}

布局:

<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>

样式:

<resources>


<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
</style>

</resources>

您的应用继承 AppCompat 主题很重要。

如果您用工具栏替换了操作栏,请不要忘记通过删除 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'
}

我把这段代码放在了 github 上:https://github.com/bbouabou/AppCompatActivity-With-ActionBarDrawerToggle .

关于android - 使用 AppCompatActivity 时的新 ActionBarDrawerToggle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29784195/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com