我目前在操作栏中有4个操作,它会切断屏幕标题。我知道我可以使用android:uiOptions="splitActionBarWhenNarrow"
添加一个底栏,但我想知道我是否可以让Action图标更小?我也知道我可以使用ActionOverflow
选项,但如果可能的话,我试图避免它。如果没有,我可以在底部保留最大数字,并且顶部有最大数字吗?
编辑
此外,还有像setTitleTextSize()
之类的电话吗?也许如果我可以让我的标题更小,它会起作用,但我在APIs
中找不到任何内容。
答案 0 :(得分: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 Approved的一种方法是将自定义布局设置为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"
以更改标题的大小。