Android操作栏标题省略号
我的android应用程序的操作栏标题中有一个省略号,尽管长度在10-15个字符以内。我使用的是导航抽屉,它工作得很好,但经过几次切换后,它为标题添加了省略号Android操作栏标题省略号,android,android-actionbar,Android,Android Actionbar,我的android应用程序的操作栏标题中有一个省略号,尽管长度在10-15个字符以内。我使用的是导航抽屉,它工作得很好,但经过几次切换后,它为标题添加了省略号 我没有使用任何自定义xml来格式化我的操作栏。如何删除省略号?我应该使用什么样式/选项来确保它不会省略标题?我也遇到过同样的问题。有足够的空间,但是保存标题文本的TextView不会改变大小以适应其新的文本内容。这就解决了我的问题: protected Handler mUiHandler = new Handler(Looper.get
我没有使用任何自定义xml来格式化我的操作栏。如何删除省略号?我应该使用什么样式/选项来确保它不会省略标题?我也遇到过同样的问题。有足够的空间,但是保存标题文本的TextView不会改变大小以适应其新的文本内容。这就解决了我的问题:
protected Handler mUiHandler = new Handler(Looper.getMainLooper());
protected void setActionBarTitle(final CharSequence title, final boolean showHomeAsUp)
{
mUiHandler.post(new Runnable()
{
@Override
public void run()
{
Activity activity = getActivity();
if(activity != null){
ActionBar ab = activity.getActionBar();
ab.setDisplayHomeAsUpEnabled(showHomeAsUp);
ab.setDisplayShowTitleEnabled(false);
activity.setTitle(title);
ab.setDisplayShowTitleEnabled(true);
}
}
});
}
简化Simon的答案,您可以使用以下内容覆盖活动的
setTitle
方法:
@Override
public void setTitle(final CharSequence title) {
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
MyActivity.super.setTitle(title);
}
});
}
我在ParentActivity中执行此操作,ParentActivity由我的应用程序的所有活动扩展。稍有不同/更简单,但遵循对我有效的相同理念:
...
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
getActivity().setTitle(title);
}
});
...
这很有效。Kotlin中的等效方法是在UI线程上运行的协同程序中调用它