2

Gmailアプリのアクションバーについてお聞きしたいです。

主なアクティビティでは、アクションバー (受信トレイ、送信済みなど) にスピナーがあり、タイトルはありません。

私は自分のアプリでそれを試しましたが、アプリのアイコンとスピナーの間には gmail アプリよりも大きなギャップがあります。

タイトルを非表示にして空っぽにしましたが、それでもギャップはなんとなく大きくなっています。

同じ効果を得るには、アクションバーに対して独自のビュー定義を作成する必要がありますか?

どうもありがとう、マーティン

4

4 に答える 4

3

回答ありがとうございました。matthiasの答えは、魅力のように機能する次の解決策に私を導きます:

public class ZeroPaddingArrayAdapter<T> extends ArrayAdapter<T> {

    public InboxTypeAdapter(Context context, int textViewResourceId, T[] objects) {
        super(context, textViewResourceId, objects);
    }

    public static ArrayAdapter<CharSequence> createFromResource(Context context,
                                                                int textArrayResId, int textViewResId) {
        CharSequence[] strings = context.getResources().getTextArray(textArrayResId);
        return new ZeroPaddingArrayAdapter<CharSequence>(context, textViewResId, strings);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = super.getView(position, convertView, parent);
        view.setPadding(
                0,
                    view.getPaddingTop(),
                0,
                view.getPaddingBottom()
        );
        return view;
    }

}

スピナーの場合:

getView()- 現在選択されているアイテムのビューを取得します。 getDropDownView()- スピナーが開いているときに表示されるビューを取得します。

のパディングを減らすだけですgetView()

シンプルなアダプターの代わりにこのアダプターを使用してArrayAdapterください。

于 2013-03-03T07:54:26.840 に答える
2

アクション バー アイコンとして正しいパディングを使用してドローアブルを作成します。

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

    <item android:drawable="@drawable/logo"
          android:right="10dp"/>

</layer-list>

次に、マニフェストのアイコンとして設定するだけです。この方法でパディングを調整できるはずです。

于 2013-02-28T12:12:54.683 に答える
1

Spinnerのパディング、より正確にはのメソッドでView膨張するレイアウト内ののパディングを減らします。サンプルプロジェクトでこれを試したところ、ギャップが大幅に狭まりました。getView()Adapter

于 2013-02-28T15:51:25.263 に答える
0

この行を追加します spinner.setPadding(0,0,0,0); ドロップダウンを開いたときに下向き矢印の画像を非表示にします。

于 2016-09-01T12:57:09.223 に答える