0

以下は私のアプリの2つの写真です。最初の写真は、メニューをアクティブにするためにクリックできる合計領域を示しています。2番目はアクティブな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>

未選択

選択済み

4

1 に答える 1

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>

理想的な解決策ではありませんが、今のところ問題ありません。

于 2012-04-30T17:50:22.733 に答える