Android 菜单检测点击远离其图标
下面是我的应用程序的两张图片,第一张显示了您可以单击以激活菜单的总区域;第二个是活动的弹出菜单。我认为它这样做的原因是android:scaleType 是否有其他方法可以将图标放置在VCenter上,即HRightedge?我只想在点击图标时激活菜单(但我想我只是缩放了图标以适应当前的所有空间。有什么想法吗 以下是Java的菜单:Android 菜单检测点击远离其图标,android,android-ui,android-menu,Android,Android Ui,Android Menu,下面是我的应用程序的两张图片,第一张显示了您可以单击以激活菜单的总区域;第二个是活动的弹出菜单。我认为它这样做的原因是android:scaleType 是否有其他方法可以将图标放置在VCenter上,即HRightedge?我只想在点击图标时激活菜单(但我想我只是缩放了图标以适应当前的所有空间。有什么想法吗 以下是Java的菜单: public void showPopup(View v) { PopupMenu popup = new PopupMenu(this,
public void showPopup(View v) {
PopupMenu popup = new PopupMenu(this, v);
MenuInflater inflater = this.getMenuInflater();
inflater.inflate(R.menu.main_menu, popup.getMenu());
popup.setOnMenuItemClickListener(this);
popup.show();
}
public boolean onMenuItemClick(android.view.MenuItem item) {
switch (item.getItemId()) {
case R.id.demographics:
Intent intent = new Intent();
intent.setClass(this, demoPanel.class);
intent.putExtra("email", db.getUserDetails().get(db.KEY_EMAIL));
startActivity(intent);
return true;
case R.id.settings:
Log.v("v", "settings clicked");
return true;
default:
return false;
}
}
下面是XML:
<TableRow android:id="@+id/rememberTableRow"
android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:id="@+id/rememberTextView"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="@string/rememberDetails" android:layout_gravity="center" />
<CheckBox android:id="@+id/rememberCheckBox"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:padding="20dp" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="showPopup"
android:scaleType="fitEnd"
android:src="@drawable/abs__ic_menu_moreoverflow_holo_dark"
android:layout_weight="1"
android:layout_gravity="center|right"/>
</TableRow>
我通过将布局权重移动到复选框来修复它(这样可以在大区域中选择它,而不仅仅是在它本身上)
<TableRow android:id="@+id/rememberTableRow"
android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:id="@+id/rememberTextView"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="@string/rememberDetails" android:layout_gravity="center" />
<CheckBox android:id="@+id/rememberCheckBox"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:padding="20dp"
android:layout_weight="1"/>
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="showPopup"
android:scaleType="fitEnd"
android:src="@drawable/abs__ic_menu_moreoverflow_holo_dark"
android:layout_gravity="center|right"/>
</TableRow>
这不是一个理想的解决方案,但现在就可以了。去掉
布局:权重
。只去掉imageview的权重,不做任何更改。