1

私は通常、質問する前にググって調べますが、今回は通常の方法で答えを見つけることができなかったので、仲間のプログラマーに助けを求めなければなりませんでした.

特にViewPagerIndicator 、 TabPageIndicator クラスを使用しており、ライブラリを変更せずに次のことを実現したいと考えています:タブからテストラベルを削除し、アイコンを水平方向にセンタリングします。最初の部分は非常に些細なことですが (単に から戻るだけnullですgetPageTitle())、2 番目の部分は私を困惑させましたmargin。想像できる。

最も明白な での設定gravityvpi_styles.xml機能しませんでした:

<style name="Widget.TabPageIndicator" parent="Widget">
    <item name="android:gravity">center_horizontal|center_vertical</item>
    <item name="android:background">@drawable/vpi__tab_indicator</item>
    <item name="android:paddingLeft">22dip</item>
    <item name="android:paddingRight">22dip</item>
    <item name="android:paddingTop">12dp</item>
    <item name="android:paddingBottom">12dp</item>
    <item name="android:textAppearance">@style/TextAppearance.TabPageIndicator</item>
    <item name="android:textSize">12sp</item>
    <item name="android:maxLines">1</item>
    <item name="android:width">60dp</item>
    <item name="android:height">48dp</item>
    <item name="android:layout_marginLeft">40dp</item>
</style>

<style name="Widget.IconPageIndicator" parent="Widget">
    <item name="android:gravity">center_horizontal|center_vertical</item>
</style>
4

3 に答える 3

5

残念ながら、十分に検索していないようです:ここTabPageIndicator.javaから2番目の回答を使用し、ファイルを変更することで必要な効果を得ました:

かわった

tabView.setCompoundDrawablesWithIntrinsicBounds(iconResId, 0, 0, 0);

tabView.setCompoundDrawablesWithIntrinsicBounds(0, iconResId, 0, 0);

私のアイコンが中央に配置されました。

于 2013-07-14T13:08:47.333 に答える
1

ViewPagerIndicator Lib を変更し、IconsOnly タブのサポートを追加しました
https://github.com/JafarKhQ/Android-ViewPagerIndicator

于 2013-07-14T13:11:17.967 に答える
0

私が行ったことは、TabPageIndicator のコピーを作成し、必要な変更を加えて、セル内のアイコンと中央のみを表すことでした。

これを使用するには、この要点から IconCenterPageIndicator.java をコピーするだけです

https://gist.github.com/pedrolaranjeiro/2a0aac0723e44e54c621

com.viewpagerindicator に移動し、XML とアダプターの例に従って、探しているものを実現します。

于 2015-04-05T16:21:40.217 に答える