ActionBar上的自定义菜单项

时间:2014-03-19 10:22:58

标签: android android-actionbar android-menu

我现在遇到使用" android:actionLayout"的问题在菜单中。

我已经使用过这个并在我之前的一些项目中工作但现在我不知道发生了什么。

当我输入

android:title="@string/menu_notifications"
android:actionLayout="@layout/menu_notification"

我的应用程序中actionBar中的每个图标都更改为文本。

我尝试了很多没有用过的东西。我不知道发生了什么。

请一些建议/想法?

修改: menu_notification.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="wrap_content"
android:layout_height="match_parent">
<TextView android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="TEST"
android:textSize="20dp"
android:textColor="#F00"
/>
</LinearLayout>

编辑2:

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.menu_main, menu);

    return true;
}

1 个答案:

答案 0 :(得分:0)

将menu_notification.xml更改为,

 <?xml version="1.0" encoding="utf-8"?>
 <TextView xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_height="wrap_content"
  android:layout_width="wrap_content"
  android:text="TEST"
    android:textSize="20dp"
  android:textColor="#F00"
 />

和main.xml,

     <item
     android:id="@+id/log_out"
      android:actionLayout="@layout/menu_notification"
    android:icon="@drawable/power"

 android:showAsAction="always"
/>

然后,

 @Override
public boolean onCreateOptionsMenu(Menu menu) {

MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main, menu);
TextView txtview=(TextView )menu.findItem(R.id.log_out).getActionView();
//do remaining stuff here

}