toolbar左上角的后退按钮怎么获取到监听

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了toolbar左上角的后退按钮怎么获取到监听相关的知识,希望对你有一定的参考价值。

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
之后还要重写onOptionsItemSelected(MenuItem item)方法 。在Toolbar上的左上角的返回箭头的键值为android.R.id.home
@Override
public boolean onOptionsItemSelected(MenuItem item)
if(item.getItemId()==android.R.id.home)
if(flag)
new SweetAlertDialog(this,SweetAlertDialog.ERROR_TYPE)
.setTitleText("请认真学习!!!")
.setContentText("学习计划还未完成,请放下手机!!")
.show();

else
if(vibrator!=null)
vibrator.cancel();

finish();


return true;

return super.onOptionsItemSelected(item);
参考技术A 在这里,它的id是android.R.id.home。
@Override
public boolean onOptionsItemSelected(MenuItem item)

// TODO Auto-generated method stub
if(item.getItemId() == android.R.id.home)

finish();
return true;

return super.onOptionsItemSelected(item);

如何以编程方式获取操作栏后退按钮宽度?

enter image description here我正在设置工具栏到我的操作栏,但是当我禁用主页按钮并且工具栏中的标题没有中心化时我有活动所以我想通过程序设置获得动作栏后退按钮来设置toolbar.setContentInsetsAbsolute(0, 0);

答案

试试这个

     toolbar = (Toolbar) findViewById(R.id.toolbar_editprofile);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayShowTitleEnabled(false);
  toolbar.setNavigationIcon(getResources().getDrawable(R.drawable.back_arrow));
    toolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            finish();
        }
    });
另一答案
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (getSupportActionBar() != null) {
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        }
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()){
            case android.R.id.home:
                onBackPressed();
                return true;
        }
        return super.onOptionsItemSelected(item);
    }
}
另一答案

您可以通过设置样式,在清单中将活动主题设置为无操作栏并在布局中手动使用工具栏并根据需要设置样式,也可以更改文本大小或使用样式在工具栏中充气图像。

 <style name="Theme.MyFancyTheme" parent="android:Theme.Holo">
    <item name="android:homeAsUpIndicator">@drawable/ic_toolbar_back_button</item>
</style>

 <android.support.v7.widget.Toolbar
                    android:id="@+id/toolbar"
                    android:layout_width="match_parent"
                    android:layout_height="?actionBarSize"
                    android:layout_gravity="top"
                    android:background="@android:color/transparent"
                    android:visibility="visible"
                    app:theme="@style/Theme.MyFancyTheme">

以上是关于toolbar左上角的后退按钮怎么获取到监听的主要内容,如果未能解决你的问题,请参考以下文章

怎么在toolbar上添加按钮

UINavigationController 后退按钮消失?

Android v7包下Toolbar和ActionBarActivity实现后退导航效果

监听当点击微信等app的返回按钮或者浏览器的上一页或后退按钮的事件

如何更改 xamarin 表单中的导航页后退按钮

工具栏 - 只有一个活动从抽屉切换到后退按钮