3

我已在每個操作欄選項卡中使用自定義視圖添加了一個進度欄。我希望進度條的寬度與選項卡指示符的寬度相匹配。但是,自定義視圖覆蓋的區域在選項卡中設置了邊距,所以我無法將進度欄擴展爲完整的選項卡寬度。做這項工作的最好方法是什麼?安卓操作欄填寫標籤寬度

下面是它看起來像現在......

progress bar in tab

進度條設置爲父寬度相匹配。

<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> 

回答

1

解決方案是爲androidActionBarTabStyle實現自定義主題。這是包含使用setCustomView有一件事我跑進的是,創造一個風格爲主題的時候,必須由主題前綴時定義的視圖,例如: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>

事實證明,它看起來很糟糕,但如果有人正在尋找類似的東西,這就是它是如何做。

+0

如果我將我的選項卡設置爲CustomView(..),視圖是否可以用此主題填充選項卡?我正在使用Sherlock ActionBar,但沒有奏效。 –