3

カスタム ビューを使用して、各アクション バー タブにプログレス バーを含めました。プログレス バーの幅をタブ インジケーターの幅に合わせたいと思います。ただし、カスタム ビューでカバーされる領域にはタブ内にマージンが設定されているため、プログレス バーをタブ幅全体に拡張することはできません。これを機能させる最良の方法は何ですか?

以下、今の様子です。...

タブの進行状況バー

プログレス バーは、親の幅に合わせて設定されます。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_margin="0dp"
>
        <TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/tab_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text = "Day 1"
        android:textAllCaps="true"
        android:textStyle="bold"
        android:textSize="13dp"
        android:layout_gravity="center"
        android:gravity="center"
        android:paddingTop="18dp"
        />

        <ProgressBar 
            style="@android:style/Widget.Holo.ProgressBar.Horizontal"
            android:id="@+id/tab_progress"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_marginBottom="1dp"
            />

</RelativeLayout>
4

1 に答える 1

1

解決策は、androidActionBarTabStyleのカスタムテーマを実装することでした。これは、使用時に定義されたビューに含まれています。setCustomView私が遭遇したことの1つは、スタイルをテーマとして作成する場合、その前にテーマを付ける必要があるということです。たとえば、次のようになります。 Theme.MyTheme

プレフィックスを含めTheme.ないと、テーマは適用されません。

スタイルファイル内で、このスタイルを定義しました。

<style name="withProgress" parent="@android:style/Widget.Holo.Light.ActionBar.TabView.Inverse">
    <item name="android:padding">0dp</item>
</style>

そしてテーマで。

<item name="android:actionBarTabStyle">@style/withProgress</item>

結局のところ、それはかなり悪いように見えますが、誰かが似たようなものを探している場合は、それが行われています。

于 2013-01-10T21:39:29.613 に答える