16

Activity から表示されるように構成したときに表示される ActionBar の「上」アイコンのスタイルを設定する方法を探しています。

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

私は周りを見回して、ホーム アイコンとタイトルの間にパディングを追加する方法を見つけました ( ActionBar のホーム アイコンとタイトルの間のパディング ) が、ホーム アイコンとアップ インジケーター アイコンの間にパディングを追加する方法はありません。

私はアンドロイドソースを掘り下げましActionBarView.HomeViewたが、この呼び出しを介してアップインジケーターを膨らませているようです:

mUpView = findViewById(com.android.internal.R.id.up);

問題はcom.android.internal.R.id.up内部であるためアクセスできないため、上記のリンクされたホームアイコンのパディングソリューションは機能しません。理想的には をオーバーライドしたいのですActionBarView.HomeViewが、 内では非公開ActionBarViewです。

ActionBarSherlock がこの動作をオーバーライドする良い方法を提供しているかどうかは誰にもわかりませんか? カスタム ホーム レイアウトの提供を検討しましたが、見つけたスレッドは、標準の Android クラスから逸脱するのは得策ではないことを示していました。

何か案は?

4

8 に答える 8

9

API 15 の時点で、これらの要素の配置はレイアウト リソースにハードコードされています。唯一の代替手段は、カスタム ナビゲーション レイアウトを使用して独自のナビゲーション レイアウトを作成し、組み込みのホーム ナビゲーションを非表示にすることです。

于 2012-06-10T20:18:23.573 に答える
7

実際、この答えは正しいです。ホームボタンの左パディングを設定するだけで、ホームボタンと上矢印の間にパディングが追加されます

    ImageView view = (ImageView)findViewById(android.R.id.home);
    view.setPadding(10, 0, 0, 0);
于 2012-10-04T20:23:02.050 に答える
2

グラフィックにパディングを追加し(たとえば、Photoshopで)、このグラフィックを属性を使用してテーマに設定すると、機能する可能性があります。

<item name="android:homeAsUpIndicator">@drawable/up_with_padding</item>
于 2012-06-10T20:23:31.080 に答える
1

私の携帯電話では、それは仕事です。解決策は以下にあります。

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
    <bitmap
        android:src="@drawable/frame_menu"
        android:antialias="true"
        android:gravity="center" 
        />
</item>
<item >
    <shape android:shape="rectangle">
        <size android:width="24dp"/>
        <solid android:color="@android:color/transparent"></solid>
        <padding
            android:right="10dp" 
            />
    </shape>

</item>

最も重要な文は「android:right=10dp」です

于 2015-03-12T04:51:22.037 に答える