我正在开发Android 2.1 API 7应用程序.我用ActionbarSherlock库实现了我的Action Bar.
我的操作栏视图:
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
android:id="@+id/my_option"
android:layout_gravity="left"
android:src="@drawable/ic_launcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
在我的Activity onCreate()回调中:
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
ActionBar actionBar = getSupportActionBar();
View actionBarView = getLayoutInflater().inflate(R.layout.action_bar, null);
actionBar.setCustomView(actionBarView);
ImageView actionBarImg = (ImageView) actionBarView.findViewById(R.id.my_option);
actionBarImg.setOnClickListener(new OnClickListener(){
public void onClick(View view) {
//how to pop up a menu which is expand/collapse below the image icon
}
});
}
如上所示,操作栏布局上有一个图像图标(actionBarImg).
我想实现这样一个功能:当用户手指按下图像图标时,弹出菜单会在图标下方展开,再次按下图标时,弹出菜单会折叠.怎么实现这个?
解决方法:
添加变量:
private PopupWindow mPopupMenu;
private View mMenuLayout;
private boolean isPopupOpened = false;
添加到onCreate():
mMenuLayout = getLayoutInflater().inflate(R.layout.menu_layout, null);
mPopupMenu = new PopupWindow(mMenuLayout, WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT);
actionBarImg.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
if (isPopupOpened)
{
mPopupMenu.dismiss();
isPopupOpened = false;
}
else
{
mPopupMenu.showAsDropDown(actionBarImg);
isPopupOpened = true;
}
}
});
标签:android,android-layout,android-emulator,android-intent
来源: https://codeday.me/bug/20190626/1291971.html