Android操作栏标题省略号

Android操作栏标题省略号,android,android-actionbar,Android,Android Actionbar,我的android应用程序的操作栏标题中有一个省略号,尽管长度在10-15个字符以内。我使用的是导航抽屉,它工作得很好,但经过几次切换后,它为标题添加了省略号 我没有使用任何自定义xml来格式化我的操作栏。如何删除省略号?我应该使用什么样式/选项来确保它不会省略标题?我也遇到过同样的问题。有足够的空间,但是保存标题文本的TextView不会改变大小以适应其新的文本内容。这就解决了我的问题: protected Handler mUiHandler = new Handler(Looper.get

我的android应用程序的操作栏标题中有一个省略号,尽管长度在10-15个字符以内。我使用的是导航抽屉,它工作得很好,但经过几次切换后,它为标题添加了省略号


我没有使用任何自定义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线程上运行的协同程序中调用它