gpt4 book ai didi

android - ActionBarDrawerToggle 没有设置抽屉指示器

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

我正在尝试在我的应用程序中添加抽屉导航。一切正常但现在我仍然看到箭头图标,尽管我用 Android 的 ic_drawer 替换了它?这是我的代码:

private ActionBarDrawerToggle mDrawerToggle;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

DrawerLayout mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
ExpandableListView mDrawerList = (ExpandableListView) findViewById(R.id.left_drawer);

mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow,
GravityCompat.START);
mDrawerList.setAdapter(new DrawerListAdapter(this));
mDrawerList.setOnChildClickListener(new DrawerItemClickListener());

mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
R.drawable.ic_launcher, R.string.drawer_open,
R.string.drawer_close);

Log.d("Mudit",
"mDrawerToggle" + mDrawerToggle.isDrawerIndicatorEnabled()); // returns true

mDrawerLayout.setDrawerListener(mDrawerToggle);

getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);

getActionBar().setDisplayShowHomeEnabled(false);

}

/**
* When using the ActionBarDrawerToggle, you must call it during
* onPostCreate() and onConfigurationChanged()...
*/

@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
mDrawerToggle.syncState();
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
mDrawerToggle.onConfigurationChanged(newConfig);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
return super.onOptionsItemSelected(item);
}

XML:

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

<ScrollView
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >

</LinearLayout>
</ScrollView>

<ExpandableListView
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#ffffff"
android:dividerHeight="0dp" />

</android.support.v4.widget.DrawerLayout>

我在网上查看了各种代码示例,但它们都在做同样的事情。我不知道为什么它对我不起作用。

请帮忙。

最佳答案

你必须使用

getActionBar().setDisplayShowHomeEnabled(true);

代替

getActionBar().setDisplayShowHomeEnabled(false);

干杯,

菲利克斯

编辑:以下是通过 XML 隐藏图标的方法:

将其添加到您的 styles.xml 中:(如果您使用的是深色操作栏,请将 android:Widget.Holo.Light.ActionBar.Solid 替换为 android:Widget.Holo.ActionBar.Solid)

<style name="ActionBarStyle" parent="android:Widget.Holo.Light.ActionBar.Solid">
<item name="android:icon">@android:color/transparent</item>
</style>

然后将其添加到您在 AndroidManifest.xml 中定义的主题中(标准是/res/values-v11/styles.xml 中的 AppBaseTheme - AppBaseTheme:

<item name="android:actionBarStyle">@style/ActionBarStyle</item>

希望这对您有所帮助!

关于android - ActionBarDrawerToggle 没有设置抽屉指示器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17360477/

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