如何在Android上将带有文本的向上操作图标更改为按钮?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Android上将带有文本的向上操作图标更改为按钮?相关的知识,希望对你有一定的参考价值。
我想改变Up动作按钮的样式。它目前看起来像这样:
在对堆栈溢出和android文档进行了大量探索之后,我看到了可以将Up操作按钮图标换成自定义图标的示例,如下所示:
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator);
然而,这不是我想要的。我想用文本替换Up操作按钮的图标,例如上面屏幕截图右侧的按钮。
有没有办法(从java方面)让我用“取消”的文字替换这个箭头图标而不修改或创建任何可绘制的资源或布局文件?
答案
如果没有Android中的自定义操作栏布局,则无法执行此操作。要设置自定义操作栏,您需要执行以下操作。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="64dp"
android:background="@android:color/white">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/cancel_button"
android:text="Contact"
android:textColor="@android:color/black"
android:textStyle="bold" />
<TextView
android:id="@+id/cancel_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_margin="16dp"
android:text="Cancel"
android:textColor="@android:color/black" />
</RelativeLayout>
并从您的活动中设置操作栏中的布局,如下所示。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActionBar mActionBar = getSupportActionBar();
mActionBar.setDisplayShowHomeEnabled(false);
mActionBar.setDisplayShowTitleEnabled(false);
LayoutInflater mInflater = LayoutInflater.from(this);
View mCustomView = mInflater.inflate(R.layout.custom_action_bar_layout, null);
TextView cancelButton = (TextView) mCustomView.findViewById(R.id.cancel_button);
cancelButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
mActionBar.setCustomView(mCustomView);
mActionBar.setDisplayShowCustomEnabled(true);
}
希望有所帮助!
以上是关于如何在Android上将带有文本的向上操作图标更改为按钮?的主要内容,如果未能解决你的问题,请参考以下文章
Android如何在每个listview列表项上添加图标并更改文本颜色、背景颜色