2012-04-27 72 views
0

下面是我的应用程序的两个图片,第一个显示了可以点击的总区域以激活菜单;第二个是活动的popupMenu。我认为它以这种方式行事的原因是android:scaleType。菜单检测远离其图标的水龙头

有没有另一种方法让我可以将图标放置在VCenter,HRightedge上?我只想激活时,图标被窃听以及菜单(但我想我只是缩放图标此刻适合所有空间的任何想法

这是菜单的Java:?

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> 

Unselected

Selected

+0

摆脱'layout:weight'。 – adneal 2012-04-27 02:45:15

+0

刚刚删除了imageview的重量,没有改变。 – Davek804 2012-04-27 03:57:10

回答

0

我通过将布局权重移动到CheckBox来修复它(因此可以在大面积上选择它,而不仅仅是在它自己之上。

<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> 

不是一个理想的解决方案,但它现在会做。