Android操作栏无法显示

时间:2014-11-28 18:34:41

标签: android android-actionbar

我为Android应用程序设置了一个自定义操作栏。它有2个按钮(左和右)和标题(中间)。

但是我不明白为什么它没有出现。 (我有一个小的白色乐队)

这是我的自定义布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="30dp"
        android:layout_centerVertical="true"
        android:background="@color/oeo_grey_4"
        >
        <ImageView
                android:id="@+id/actionbar_menu_button"
                android:layout_width="wrap_content"
                android:layout_height="30dp"
                android:clickable="false"
                android:focusable="false"
                android:longClickable="false"
                android:src="@drawable/actionbar_menu_button"
                android:layout_alignParentStart="true"
                android:layout_alignParentLeft="true"
                android:layout_centerVertical="true"
                />

        <TextView
                android:id="@+id/actionbar_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="TITLE"
                android:gravity="center"
                android:textSize="18sp"
                android:singleLine="true"
                android:ellipsize="end"
                android:textColor="@color/oeo_grey_2"
                android:layout_centerHorizontal="true"
                android:layout_centerVertical="true"
                />

        <ImageView
                android:id="@+id/actionbar_account_button"
                android:layout_width="wrap_content"
                android:layout_height="30dp"
                android:clickable="false"
                android:focusable="false"
                android:longClickable="false"
                android:src="@drawable/actionbar_account_button"
                android:layout_alignParentEnd="true"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                />
</RelativeLayout>

我设置操作栏的代码段:扩展Activity的MenuActionBarActivity.java。 这个类由HomepageActivity.java扩展(我希望显示一个操作栏的活动)

@Override
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    actionBar = getActionBar();
    actionBar.setCustomView(R.layout.actionbar_menu_button);
    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setDisplayShowCustomEnabled(true);
    actionBar.setDisplayUseLogoEnabled(false);
    actionBar.setDisplayShowHomeEnabled(false);

    actionBarMenuButton = (ImageView) actionBar.getCustomView().findViewById(R.id.actionbar_menu_button);
    actionBarTitle = (TextView) actionBar.getCustomView().findViewById(R.id.actionbar_title);
    actionBarAccountButton = (ImageView) actionBar.getCustomView().findViewById(R.id.actionbar_account_button);

谢谢!

2 个答案:

答案 0 :(得分:1)

您使用以下错误设置了自定义视图:actionBar.setCustomView(R.layout.actionbar_menu_button);

您可以inflate自定义视图:

LayoutInflater mInflater = LayoutInflater.from(this);
View mCustomView = mInflater.inflate(R.layout.custom_actionbar, null);
mActionBar.setCustomView(mCustomView);
mActionBar.setDisplayShowCustomEnabled(true);

查看this tutorial了解详情。

答案 1 :(得分:0)

尝试使用MainActivity.java $ OnCreate

getActionBar().show();
你的styles.xml中的

<style name="HoloLight" parent="android:Theme.Holo.Light">
    <!--
        Theme customizations available in newer API levels can go in
        res/values-vXX/styles.xml, while customizations related to
        backward-compatibility can go here.
    -->
</style>

在你的清单

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/HoloLight">