1

我的操作栏中目前有 4 个操作,它切断了屏幕的标题。我知道我可以android:uiOptions="splitActionBarWhenNarrow"用来添加一个底栏,但我想知道我是否可以让动作图标变小?我也知道我可以使用该ActionOverflow选项,但我会尽可能避免使用它。如果没有,是否有我可以在底部保持的最大数量,以及顶部的最大数量?

编辑

另外,有没有类似的电话setTitleTextSize()?也许如果我可以让我的标题更小它会起作用,但我在APIs.

4

1 回答 1

1

没有谷歌批准的方法来做到这一点,但这个小技巧应该可以工作。

try {
    final int titleId = Resources.getSystem().getIdentifier("action_bar_title", "id", "android");
    TextView title = (TextView) getWindow().findViewById(titleId);
    // check for null and manipulate the title as you see fit
} catch (Exception e) {
    Log.e(TAG, "Failed to obtain action bar title reference");
}

然而,稍微更受 Google 认可的方法是为 ActionBar 设置自定义布局:

您可以为操作栏使用自定义视图(它将显示在您的图标和操作项之间)。我正在使用自定义视图,并且禁用了本机标题。我的所有活动都继承自一个活动,该活动在 onCreate 中有以下代码:

this.getActionBar().setDisplayShowCustomEnabled(true);
this.getActionBar().setDisplayShowTitleEnabled(false);

LayoutInflater inflator = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflator.inflate(R.layout.titleview, null);

//if you need to customize anything else about the text, do it here.
//I'm using a custom TextView with a custom font in my layout xml so all I need to do is set title
((TextView)v.findViewById(R.id.title)).setText(this.getTitle());

//assign the view to the actionbar
this.getActionBar().setCustomView(v);

您的布局 xml(上面代码中的 R.layout.titleview)应如下所示:

<?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="match_parent"
    android:background="@android:color/transparent" >

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginLeft="10dp"
        android:textSize="20dp"
        android:maxLines="1"
        android:ellipsize="end"
        android:text="" />
</RelativeLayout>

更改android:textSize="20dp"以更改标题的大小。

于 2013-01-24T15:27:01.593 回答