Я пытаюсь понять, как показать пользовательский вид элементов внутри меню переполнения (справа от панели действий), но я не могу понять это. Он по-прежнему показывает только название: S. Я хочу сделать что-то вроде того, как твиттер должен показывать значок, заголовок и субтитры в первом элементе в выпадающем меню. Может ли кто-нибудь помочь мне?
Элемент в Menu.xml
<item
android:id="@+id/action_dropdown"
android:icon="@drawable/ic_action_overflow"
android:actionProviderClass="efwefwef.com.actionbar.ABDropDown"
android:title=""
android:showAsAction="always">
</item>
actionProvider Class # 1
public class ABDropDown extends ActionProvider {
private static final String TAG = "MActionProvider";
private Context context;
public ABDropDown(Context context) {
super(context);
this.context = context;
}
@Override
public View onCreateActionView() {
return null;
}
@Override
public boolean hasSubMenu() {
Log.d(TAG, "hasSubMenu");
return true;
}
@Override
public boolean onPerformDefaultAction() {
Log.d(TAG, "onPerformDefaultAction");
return super.onPerformDefaultAction();
}
@Override
public void onPrepareSubMenu(SubMenu subMenu) {
subMenu.clear();
subMenu.add("Profile").setActionProvider(new ABDropDownProfile(context));
subMenu.add(Menu.NONE, Menu.NONE, 2, "Mezz 2");
}
}
Второй класс ActionProvider для элемента, который я хочу показать пользовательский вид
public class ABDropDownProfile extends ActionProvider {
private static final String TAG = "MActionProvider";
private Context context;
public ABDropDownProfile(Context context) {
super(context);
this.context = context;
}
@Override
public View onCreateActionView() {
View view = View.inflate(context, R.layout.actionbar_viewprofile, null);
return view;
}
@Override
public boolean hasSubMenu() {
return false;
}
@Override
public boolean onPerformDefaultAction() {
Log.d(TAG, "onPerformDefaultAction");
return super.onPerformDefaultAction();
}
}