15

ここに画像の説明を入力

メニュー項目を res/menu/menu.xml から ActionBar にインフレートしています。Android を使用してメニュー項目間にパディングを追加するにはどうすればよいですか?

<item 
    android:id="@+id/home"
    android:showAsAction="always"
    android:title="Home"
    android:icon="@drawable/homeb"/>
<item 
    android:id="@+id/location"
    android:showAsAction="always"
    android:title="Locations"
    android:icon="@drawable/locationb"/>
<item
    android:id="@+id/preQualify"
    android:showAsAction="always"
    android:title="Pre-Qualify"
    android:icon="@drawable/prequalityb"/>
<item 
    android:id="@+id/products"
    android:showAsAction="always"
    android:title="Products"
    android:icon="@drawable/productb"/>

Java ファイル:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_store_locator, menu);
    return true;
}
4

3 に答える 3

38

解決策が見つかり、styles.xml ファイルに次の行を追加すると、うまくいきました!!

<style name="AppTheme" parent="AppBaseTheme">
    <item name="android:actionButtonStyle">@style/MyActionButtonStyle</item>
</style>

<style name="MyActionButtonStyle" parent="AppBaseTheme">
    <item name="android:minWidth">20dip</item>
    <item name="android:padding">0dip</item>
</style>
于 2013-03-28T10:39:15.363 に答える
9

ドローアブル xml を作成します。お気に入りres/drawable/shape_green_rect.xml

<?xml version="1.0" encoding="utf-8"?>
<shape
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:shape="rectangle">

  <!-- Specify a semi-transparent solid green background color -->
  <solid android:color="#5500FF66" />

  <!-- Specify a dark green border -->
  <stroke 
    android:width="5dp"
    android:color="#009933" />

  <!-- Specify the margins that all content inside the drawable must adhere to -->
  <padding
    android:left="30dp"
    android:right="30dp"
    android:top="30dp"
    android:bottom="30dp" />
</shape>

このドローアブルを追加します

android:icon="@drawable/shape_green_rect"

このようにして、メニューにパディングを追加できます。

ありがとう。

于 2013-03-28T09:48:29.510 に答える
-2

パディング わかりませんが、次の方法でマージンを追加できます。

LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(left, top, right, bottom);
yourItem.setLayoutParams(lp);

「左、上、右、下」の代わりに値を設定します。この例では、ID で取得するアイテムにマージンを追加しています。

お役に立てれば。

于 2013-03-28T09:46:46.593 に答える