1

I currently have 4 actions in my action bar, and it cuts off the title of the screen. I know I can use android:uiOptions="splitActionBarWhenNarrow" to add a bottom bar, but I'm wondering if I can maybe make the Action icons smaller? I also know I could use the ActionOverflow option but I'm trying to avoid it if possible. If not, is there a max number I can hold on the bottom, and a max number for the top?

EDIT

Also, is there any sort of call like setTitleTextSize()? Maybe if I can make my title smaller it will work, but I can't find anything in the APIs.

4

1 に答える 1

1

これを行うための Google が承認した方法はありませんが、このマイナーなハックは機能するはずです。

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 に答える