2012-04-27 62 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> 

不是一個理想的解決方案,但它現在會做。

相關問題