我使用v7支持操作栏并在那里获得了3个项目:一个是文本,另外两个是图标。 根据选择的选项,文本会发生变化,这没有问题,但如果文本很长,则不能再看到这两个图标项。 所以我想为文本项添加一个选框效果,以确保带有图标的两个项目都是可见的。我该如何实现呢?
以下是操作栏的更新代码:
private void updateActionBar() {
runOnUiThread(new Runnable() {
@Override
public void run() {
MenuItem addFavoriteItem=menu.getItem(FAVORITE_MENU_ITEM); //R.id.action_fav dosn't work here :/
MenuItem nameItem=menu.getItem(ALBUMNAME_MENU_ITEM);
int id=R.drawable.ic_add_favorite;
if(gridview.getAdapter() instanceof CategoryAdapter)
{
nameItem.setTitle("");
nameItem.setTitleCondensed("");
if(gridview.getAdapter().getClass() == CategoryAdapter.FavoriteAdapter.class)
{
id=R.drawable.ic_favorite;
}
} else if(gridview.getAdapter() instanceof AlbumAdapter)
{
Album a=((AlbumAdapter)gridview.getAdapter()).getAlbum();
if(isFavorite(a))id=R.drawable.ic_favorite;
nameItem.setTitle(a.getName());
nameItem.setTitleCondensed(a.getShortName());
}
addFavoriteItem.setIcon(id);
}
});
}
和定义项目的xml:
<item
android:id="@+id/album_name"
android:title="@string/album_name"
yourapp:showAsAction="ifRoom"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"/>
<item
android:id="@+id/action_save_all"
android:icon="@drawable/ic_action_content_save"
android:title="@string/action_save_all"
yourapp:showAsAction="always"/>
<item
android:id="@+id/action_fav"
android:icon="@drawable/ic_add_favorite"
android:title="@string/action_fav"
yourapp:showAsAction="always"/>
答案 0 :(得分:2)
您需要为item&#39; album_name&#39;添加一个布局。 :
<item
android:id="@+id/album_name"
android:title="@string/album_name"
yourapp:showAsAction="always"
yourapp:actionLayout="@layout/action_text"/>
然后布局&#39; action_text&#39;可能是:
<TextView android:id="@+id/text_name"
android:layout_width="text_width"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit ="marquee_forever"
android:scrollHorizontally="true"
... ...
/>
希望得到这个帮助。