Android:无法设置动作栏的样式

时间:2014-08-25 12:38:11

标签: android android-actionbar

我希望得到类似enter image description here

的内容

为此我写了title_layout,看起来像这样

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" 
android:layout_gravity="center">

    <TextView
        android:id="@+id/mytext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="@string/app_name"
        android:textColor="@color/black"
        android:textSize="22sp" 
        android:background="@drawable/background"/>

    </LinearLayout>

和background.xml看起来像这样

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
     <solid android:color="@color/pink"/>
    <stroke android:width="1dip" android:color="@color/pink" />
    <corners android:radius="20dip"/>
    <padding android:left="0dip" android:top="0dip" android:right="0dip" android:bottom="0dip" />

</shape>

我将onCreateOptionsMenu方法重写为

@Override
    public boolean onCreateOptionsMenu(Menu menu)
    {
        getActionBar().setCustomView(R.layout.title_layout);
        return true;
    }
即使我没有编写任何代码,UI看起来也是一样的。

1 个答案:

答案 0 :(得分:1)

您应该在onCreate()中执行此操作:

ActionBar actionBar = getActionBar();
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 
actionBar.setCustomView(R.layout.title_layout);

那应该有用