使用 v7 库时更改 ActionBarDrawer 切换图标
Change ActionBarDrawer toggle icon when using v7 library
我想使用自定义图像代替 android 中用于切换导航抽屉的默认图标。我该怎么做?
这是我想要更改的图像。
使用以下代码设置您的自定义 ActionBar 切换按钮。
mDrawerToggle.setDrawerIndicatorEnabled(false);
// mDrawerToggle.setHomeAsUpIndicator(R.drawable.menu_icon);
mToolbar.setNavigationIcon(R.drawable.menu_icon);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mDrawerLayout.openDrawer(Gravity.LEFT);
}
});
您可以使用 style.xml
进行更改
<style
name="BaseTheme" parent="Theme.AppCompat.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="homeAsUpIndicator">@drawable/menu</item>
<item name="android:textColorPrimary">@android:color/white</item>
</style>
@Arya 给出了一个使用 styles.xml 的很好的例子:
<style name="BaseTheme" parent="Theme.AppCompat.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="homeAsUpIndicator">@drawable/menu</item>
<item name="android:textColorPrimary">@android:color/white</item>
</style>
您也可以通过编程方式进行:
public void setTitle(String title, int homeAsUpIndicator) {
if (getSupportActionBar() != null) {
getSupportActionBar().setTitle(title);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(homeAsUpIndicator);
}
}
然后在您的 onCreate() 方法中,您可以调用 setTitle 方法,并将向上指示器 ican 作为资源。
注意:这是将支持操作栏与新工具栏一起使用。
要更改导航菜单的图标,您需要在 ActionBarDrawerToggle 对象中定义图像,如下所示:
mDrawerToggle = new ActionBarDrawerToggle(这个,
mDrawerLayout,
你的 IMAGE_SOURCE 在这里,
R.string.drawer_open,
R.string.drawer_close)
如果您发现有什么困难可以评论。
我使用了自定义操作栏并自行处理了后退操作。我认为,这是最好的方法。 PFB xml :
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:gravity="center_vertical"
android:orientation="horizontal"
android:layout_margin="@dimen/outer_padding" >
<ImageView
android:id="@+id/btnBack"
style="@style/back_button_style"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:src="@drawable/white_arrow" />
<com.example.widgets.CustomTextView
android:id="@+id/tvTitleImage"
style="@style/actionbar_text_style"
android:layout_centerInParent="true"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/btnBack"
android:padding="@dimen/outer_padding"
android:text="@string/requests_text"
custom:typefaceAsset="@string/berlin_bold" />
<ImageView
android:id="@+id/btnAdd"
style="@style/back_button_style"
android:layout_width="@dimen/actionbar_menu_icon_dim"
android:layout_height="@dimen/actionbar_menu_icon_dim"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/ivSearch"
android:src="@drawable/app_icon" />
<ImageView
android:id="@+id/ivSearch"
style="@style/back_button_style"
android:layout_width="@dimen/actionbar_menu_icon_dim"
android:layout_height="@dimen/actionbar_menu_icon_dim"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:src="@drawable/app_icon" />
</RelativeLayout>
我想使用自定义图像代替 android 中用于切换导航抽屉的默认图标。我该怎么做?
这是我想要更改的图像。
使用以下代码设置您的自定义 ActionBar 切换按钮。
mDrawerToggle.setDrawerIndicatorEnabled(false);
// mDrawerToggle.setHomeAsUpIndicator(R.drawable.menu_icon);
mToolbar.setNavigationIcon(R.drawable.menu_icon);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mDrawerLayout.openDrawer(Gravity.LEFT);
}
});
您可以使用 style.xml
进行更改 <style
name="BaseTheme" parent="Theme.AppCompat.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="homeAsUpIndicator">@drawable/menu</item>
<item name="android:textColorPrimary">@android:color/white</item>
</style>
@Arya 给出了一个使用 styles.xml 的很好的例子:
<style name="BaseTheme" parent="Theme.AppCompat.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="homeAsUpIndicator">@drawable/menu</item>
<item name="android:textColorPrimary">@android:color/white</item>
</style>
您也可以通过编程方式进行:
public void setTitle(String title, int homeAsUpIndicator) {
if (getSupportActionBar() != null) {
getSupportActionBar().setTitle(title);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(homeAsUpIndicator);
}
}
然后在您的 onCreate() 方法中,您可以调用 setTitle 方法,并将向上指示器 ican 作为资源。
注意:这是将支持操作栏与新工具栏一起使用。
要更改导航菜单的图标,您需要在 ActionBarDrawerToggle 对象中定义图像,如下所示: mDrawerToggle = new ActionBarDrawerToggle(这个, mDrawerLayout, 你的 IMAGE_SOURCE 在这里, R.string.drawer_open, R.string.drawer_close)
如果您发现有什么困难可以评论。
我使用了自定义操作栏并自行处理了后退操作。我认为,这是最好的方法。 PFB xml :
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:gravity="center_vertical"
android:orientation="horizontal"
android:layout_margin="@dimen/outer_padding" >
<ImageView
android:id="@+id/btnBack"
style="@style/back_button_style"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:src="@drawable/white_arrow" />
<com.example.widgets.CustomTextView
android:id="@+id/tvTitleImage"
style="@style/actionbar_text_style"
android:layout_centerInParent="true"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/btnBack"
android:padding="@dimen/outer_padding"
android:text="@string/requests_text"
custom:typefaceAsset="@string/berlin_bold" />
<ImageView
android:id="@+id/btnAdd"
style="@style/back_button_style"
android:layout_width="@dimen/actionbar_menu_icon_dim"
android:layout_height="@dimen/actionbar_menu_icon_dim"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/ivSearch"
android:src="@drawable/app_icon" />
<ImageView
android:id="@+id/ivSearch"
style="@style/back_button_style"
android:layout_width="@dimen/actionbar_menu_icon_dim"
android:layout_height="@dimen/actionbar_menu_icon_dim"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:src="@drawable/app_icon" />
</RelativeLayout>