15

ActionBar のタブをカスタマイズしようとしています。タブを電話画面に合わせて、さまざまな画面に合わせて伸縮できるようにしたいだけです。しかし、私が得るのはこれだけです:

ここに画像の説明を入力

テーマに使用するコードは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="MyTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:actionBarTabTextStyle">@style/MyActionBarTabTextStyle</item>
    </style>

    <style name="MyActionBarTabTextStyle" parent="@android:style/Widget.Holo.Light.Tab">
        <item name="android:textSize">14dip</item>
        <item name="android:padding">0dip</item>
    </style>

</resources>

フォントを減らして青い線を取り除くことは可能ですか?

事前に助けてくれてありがとう。

PS: また、ボタンの動作がおかしい。テキストはありません(そうあるべきですが)...

4

7 に答える 7

13

編集:ActionBarCompatサポートライブラリで使用します。


次の2つの理由から、 JakeWhartonのActionBarSherlockを使用することをお勧めします。

  1. ActionBarSherlockは、Androidのすべてのバージョンでアクションバーを簡単に使用できるようにする互換性ライブラリの拡張機能です。つまり、HoneyCombより前のバージョンのAndroidでアプリケーションを実行しているユーザーはActionBar、ナビゲーションにもを使用できるようになります。これは、ユーザー(これActionBarは素晴らしいからです!)とあなた(が利用可能かどうかに基づいてアプリケーションの制御フローを分離することを心配する必要がないため)の両方にとって望ましいActionBarことです。 -HoneyCombと互換性があるため、1つの画面にActionBar複数のを作成することを心配する必要があるかもしれませんActivity... 1つは、での使用に最適化されておりActionBar、もう1つはHoneyComb以前のデバイスで実行できます。

  2. ActionBarSherlockを使用すると、ActionBarのスタイリングが簡単になります。その方法について詳しく説明することもできますが、ライブラリには、上記で説明した方法を示す多くのサンプルコードがすでに付属しています。

ライブラリのインストール/使用は非常に簡単で、Android SDKで提供されている通常のライブラリを使用するのとほぼ同じです(ほとんどの場合、の代わりにActionBar呼び出すだけです)。ご不明な点がございましたら、お気軽にお問い合わせください。getSupportActionBar()getActionBar()

psまたActionBarSherlock、ViewPagerExtensionsライブラリが提供するすべての機能などを提供することにも注意してください。後者よりも前者を使用することを強くお勧めします。

于 2012-05-03T19:33:27.370 に答える
7

アクションバーの正しい 9patch イメージを生成するための新しいツールがあります: http://jgilfelt.github.com/android-actionbarstylegenerator/

于 2012-05-03T08:40:19.743 に答える
4

への変更:

<style name="MyActionBarTabTextStyle" parent="@android:style/Widget.Holo.ActionBar.TabText">
     <item name="android:textSize">14dip</item>
     <item name="android:padding">0dip</item>
</style>
于 2012-10-13T03:54:13.860 に答える
4

タブにスタイル ガイドを使用することは、ハニカムに対して非常に一貫性がないことがわかりました。必要なカスタム ビューを単にインフレートする方がはるかに簡単でした。

Fragment serivceFrag = new ServicesFragment();
Tab serviceTab = bar.newTab();
TextViewPlus serviceTabTextView =(TextViewPlus)getLayoutInflater().inflate(R.layout.tab_item_layout, null);
serviceTabTextView.setText(servicesLabel);
serviceTab.setCustomView(serviceTabTextView);
serviceTab.setTabListener(new TabListenerFragment(serivceFrag,"Service",R.id.MainInfoPaneFragment));
bar.addTab(serviceTab);

これは私にとってはるかに簡単でした。

于 2012-04-30T15:56:31.770 に答える
1

ViewPagerExtensions ライブラリを使用することを強くお勧めします。これにより、5 つの異なるスタイルのタブから選択できます。また、各画面サイズのポートレートとランドスケープでタブを埋める必要があるという問題も、このライブラリで既に解決されています。

ちなみに、ライブラリのコードの中を見ると、自分で簡単にテーマを設定できます。

また、フラグメントページでこれを実装するのに問題がある場合は、actionbarsherlock-tabs-multi-fragments を見てください。

于 2012-05-03T15:03:43.467 に答える
1

間違ったスタイルから継承していると思います。試してください:

<style name="MyActionBarTabTextStyle" parent="android:TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:textSize">14sp</item>
    <item name="android:padding">0dip</item>
</style>

編集:また、フォントサイズ(14sp)に dip の代わりに sp を使用してください

于 2012-04-30T21:13:50.187 に答える
0

setCustomViewメソッドを使用できます。

于 2013-09-11T06:14:03.490 に答える