Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将活动标题椭圆设置为中间?_Java_Android - Fatal编程技术网

Java 将活动标题椭圆设置为中间?

Java 将活动标题椭圆设置为中间?,java,android,Java,Android,我有一项活动,它的标题不断变化,但有时很长,最后会出现省略号。我可以将椭圆设置为中间吗?尝试使用android:ellipsize 请参阅Android开发者页面。您可以执行以下操作: final int actionBarTitle = Resources.getSystem().getIdentifier("action_bar_title", "id", "android"); final TextView title = (TextView)getWindow().fin

我有一项活动,它的标题不断变化,但有时很长,最后会出现省略号。我可以将椭圆设置为中间吗?

尝试使用
android:ellipsize

请参阅Android开发者页面。

您可以执行以下操作:

    final int actionBarTitle = Resources.getSystem().getIdentifier("action_bar_title", "id", "android");
    final TextView title = (TextView)getWindow().findViewById(actionBarTitle);
    if ( title != null ) {
        title.setEllipsize(TextUtils.TruncateAt.MIDDLE);
    }

获得该功能如果您使用工具栏,则可以在设置标题之前添加此功能

  private void setToolbarTextEllipsizeInMiddle(Toolbar toolbar){
    try {
        toolbar.setTitle("'");
        for (int i = 0; i < toolbar.getChildCount(); i++) {
            View view = toolbar.getChildAt(i);
            if (view instanceof TextView) {
                TextView tv = (TextView) view;
                tv.setEllipsize(TextUtils.TruncateAt.MIDDLE);
            }
        }//end for i
        toolbar.setTitle("");
    } catch (Exception e) {
    }
}
private void setToolbarTextEllipsizeInMiddle(工具栏工具栏){
试一试{
工具栏.setTitle(“”);
对于(int i=0;i
您不能将其用于活动标题,对吗?我看不到您问题中的1.6。它应该是相同的,但不同的id,尝试使用HierarchyViewer来查找它。这也是一种攻击。它可能会破裂。至少要检查null和catch异常。@xmenW.K.“android.R.id.title”在非actionbar版本中。这是一种黑客行为。它可能会崩溃。我同意,它确实会在3.0+上崩溃,但在较旧的版本中也会崩溃:)
  private void setToolbarTextEllipsizeInMiddle(Toolbar toolbar){
    try {
        toolbar.setTitle("'");
        for (int i = 0; i < toolbar.getChildCount(); i++) {
            View view = toolbar.getChildAt(i);
            if (view instanceof TextView) {
                TextView tv = (TextView) view;
                tv.setEllipsize(TextUtils.TruncateAt.MIDDLE);
            }
        }//end for i
        toolbar.setTitle("");
    } catch (Exception e) {
    }
}