Java 自定义工具栏后退按钮属性

Java 自定义工具栏后退按钮属性,java,android,Java,Android,我有一个自定义工具栏,它位于图像中。在某些活动中,我将使用相同的工具栏,但导航图标将是返回图标 我真的做到了。但是当我移除图像视图(导航图标)并设置后退按钮时 getSupportActionBar().setHomeButtonEnabled(true); 通常工具栏宽度大小混合。但我还想使用带有parentActivity属性的back按钮。处理这个问题最简单的方法是什么(我使用API 21)在工具栏中使用后退按钮的代码 Toolbar toolbar = (Toolbar) findVi

我有一个自定义工具栏,它位于图像中。在某些活动中,我将使用相同的工具栏,但导航图标将是返回图标

我真的做到了。但是当我移除
图像视图(导航图标)
并设置
后退按钮时

getSupportActionBar().setHomeButtonEnabled(true);

通常工具栏宽度大小混合。但我还想使用带有parentActivity属性的back按钮。处理这个问题最简单的方法是什么(我使用API 21)

在工具栏中使用后退按钮的代码

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    toolbar.setNavigationIcon(R.drawable.ic_arrow_back_icon);// Toolbar icon in Drawable folder
    toolbar.setTitle("App");
    toolbar.setTitleTextColor(Color.WHITE);// Title Color
    setSupportActionBar(toolbar);

    toolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            onBackPressed();// Do what do you want on toolbar button
        }
    });

NB:我以折叠工具栏为例。 在onCreate中,按如下方式声明自定义工具栏及其布局后:

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);
    CollapsingToolbarLayout collapsingToolbar =
            findViewById(R.id.collapsing_toolbar);
    collapsingToolbar.setTitleEnabled(true);
    collapsingToolbar.setTitle("Profile");
    assert getSupportActionBar() != null;
    setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
 <activity
        android:name="SecondActivity"
        android:parentActivityName="MainActivity"/>
<activity
        android:name="SecondActivity"
        android:parentActivityName="MainActivity"
        tools:targetApi="jelly_bean" />
在清单中设置一个父活动。你会在工具栏中看到一个返回箭头,返回到上一个活动或任何父活动;详情如下:

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);
    CollapsingToolbarLayout collapsingToolbar =
            findViewById(R.id.collapsing_toolbar);
    collapsingToolbar.setTitleEnabled(true);
    collapsingToolbar.setTitle("Profile");
    assert getSupportActionBar() != null;
    setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
 <activity
        android:name="SecondActivity"
        android:parentActivityName="MainActivity"/>
<activity
        android:name="SecondActivity"
        android:parentActivityName="MainActivity"
        tools:targetApi="jelly_bean" />

此外,您还可以在清单中设置目标API,如下所示:

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);
    CollapsingToolbarLayout collapsingToolbar =
            findViewById(R.id.collapsing_toolbar);
    collapsingToolbar.setTitleEnabled(true);
    collapsingToolbar.setTitle("Profile");
    assert getSupportActionBar() != null;
    setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
 <activity
        android:name="SecondActivity"
        android:parentActivityName="MainActivity"/>
<activity
        android:name="SecondActivity"
        android:parentActivityName="MainActivity"
        tools:targetApi="jelly_bean" />


在您的情况下:您的目标API将是棒棒糖(21)

*试试这个,您可以在每个活动和功能中更改图标*

  Toolbar t = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionToolbar(t);
        t.setNavigationIcon(icon);
        t..setNavigationOnClickListener(new View.OnClickListener() {  @Override  public void onClick(View v) { // do what you want here  } });

谢谢你的帮助。我的标题是非常薄,我还需要使用薄后退按钮,这是不可用的矢量资源。如果使用imageview作为后退按钮(256x256),是否会出现图形问题?在我的记事本4中,可视性似乎没有问题。使用默认的创建向量在向量资产中创建自定义后退按钮。然后您可以在xml中自定义后退按钮。如果您使用的是imageview,只需将其上载为工具栏图标,Android Studio将根据开发者推荐的工具栏资源大小为您调整imageview的大小。