0

タブとメニュー項目をカスタマイズする方法 - ロゴとタブ (両方が 1 行にある場所) の間にマージンを設定する方法と、アイコンのみを持つメニュー項目間に垂直セパレーターを配置する方法について質問がありますか? (メニュー項目をテキストまたはアイコン+テキストとして表示する場合は垂直セパレーターがありますが、アイコンのみの場合はありません)メニュー項目のセパレーターに関するもう1つのことは、各アイコンの前にこのセパレーターを配置する方法ですか?

非常に多くのスタイルがあるすべての actionbarsherlock サンプルを見て、それに関する別のリソースを確認しましたが、これらをカスタマイズする方法が見つかりませんでした。

4

1 に答える 1

0

タブとロゴの間の余白

カスタムタブの実装でカスタムビューを作成しない限り、タブとロゴの間にスペースを作成する方法は1つしかありません(タイトルが非表示であると仮定して)タブバーの左パディングを設定することです. このためには、テーマに以下が含まれている必要があります。

<style name="MyTheme" parent="@style/Theme.Sherlock">
    <item name="actionBarTabBarStyle">@style/MyTabBarStyle</item>
    <item name="android:actionBarTabBarStyle">@style/MyTabBarStyle</item>
</style>

には以下MyTabBarStyleが含まれている必要があります。

<style name="MyTabBarStyle" parent="Widget.Sherlock.ActionBar.TabBar">
    <item name="android:paddingLeft">@dimen/my_left_padding</item>
</style>

このバージョンのMyTabBarStyleは、タブがメイン アクション バーに配置されている場合にのみ表示されるように適切な場所に設定する必要があることに注意してください (これは通常、横向きの構成で発生します) res/values-land/styles.xml

メニュー項目の仕切り

メニュー項目がアイコンとして表示されるときに仕切りを作成するのは問題であると正しくおっしゃいました。ちょっとしたトリックを使ってそれを行うことができます - 仕切りをアクション ボタンの背景にエンコードします。次のような 9 パッチのドローアブルを使用する場合 (見やすくするためにスケーリングされています):

ここに画像の説明を入力

次に、緑色の仕切りが作成されます (当然、他の状態のバージョンも作成する必要があります)。

背景を設定するandroid:actionButtonStyleには、テーマで定義する必要があります。

<style name="MyTheme" parent="@style/Theme.Sherlock">
    <item name="actionButtonStyle">@style/MyActionButtonStyle</item>
    <item name="android:actionButtonStyle">@style/MyActionButtonStyle</item>
</style>

スタイルには背景を定義する必要があります。

<style name="MyActionButtonStyle" parent="@style/Widget.Sherlock.ActionButton">
    <item name="android:background">@drawable/my_actionbutton_bg</item>
</style>

このソリューションでは、各アイテムの前に仕切りを配置できます。オーバーフロー アイコンが表示されている場合は、同様の背景を に定義する必要があることに注意してくださいandroid:actionOverflowButtonStyle

この問題に対する別の解決策はandroid:actionLayout、メニュー項目を定義することです。そこで、各メニュー項目のカスタム レイアウトを定義できます。

于 2013-01-03T11:17:55.803 に答える