14

タブレットサイズの横向きレイアウトにデュアルペインがあり、フラグメントを使用しています。選択したTabPageIndicatorを強調表示または下線付き

左側には、リストビュー付きのフラグメントがあります。アイテムリストの1つでクリックが発生すると、右側のフラグメントが詳細をロードします。

右(詳細)断片のレイアウトでViewPager 2つの要素をロードし、それぞれがそのcom.viewpagerindicator.TabPageIndicatorを有しcom.viewpagerindicator.TabPageIndicatorandroid.support.v4.view.ViewPager. があります。 選択したタブをハイライト表示またはアンダーライン表示しようとしていますが、失敗しました。

私はあなたには、いくつかのアドバイスを持っていることを望みます:)

+0

は、あなたの質問を更新し、ここでいくつかのコードを入れてくださいです。 – Wh1T3h4Ck5

答えて

22

デフォルトでTabPageIndicatorは、任意のスタイルを適用しません。 ViewPagerIndicatorからデフォルトのスタイルを有効にするには次に、以下の内容

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="Theme.MyTheme" parent="@android:style/Theme.Light"> 
     <item name="vpiTabPageIndicatorStyle">@style/Widget.TabPageIndicator</item> 
    </style> 
</resources> 

でプロジェクトにres\values\styles.xmlファイルを追加するには、manifest.xml

android:theme="@style/Theme.MyTheme" 

applicationタグや適切なactivityタグのいずれかに次の行を追加します私は自分のアプリケーションにアンドロイドライトのテーマを使用していますが、これを今使っているテーマに変更したいかもしれません。

あなたはこのような何かにstyles.xmlファイルを変更するデフォルトのVPIのスタイルを変更する場合:設定は上記の正確TabPageIndicactorのデフォルトVPIスタイルと同じであることを

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

    <style name="Theme.MyTheme" parent="@android:style/Theme.Light"> 
    <item name="vpiTabPageIndicatorStyle">@style/MyTabPageIndicator</item> 
    </style> 

    <style name="MyTabPageIndicator" parent="Widget.TabPageIndicator"> 
    <item name="android:gravity">center</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/MyTabPageIndicator.Text</item> 
    <item name="android:textSize">12sp</item> 
    <item name="android:maxLines">1</item> 
    </style> 

    <style name="MyTabPageIndicator.Text" parent="TextAppearance.TabPageIndicator"> 
    <item name="android:textStyle">bold</item> 
    <item name="android:textColor">@color/vpi__dark_theme</item> 
    </style> 

</resources> 

注ので、あなたはまだあなたが望む変更を加える必要があります。

+0

これは私を怒らせてくれた、ありがとう! – HGPB

+0

こんにちは、私はアクションバーを使用しています、どのように私は両方のアクションバーとアンドロイドを実装することができます:テーマ= "@スタイル/ Theme.MyTheme"マニフェストファイル? – NPE

+1

@StackOverflowError私は問題が答えられたと思う[ここ](http://stackoverflow.com/q/9737103/741249)と[ここ](http://stackoverflow.com/q/12267660/741249) – THelper

1

2つのライブラリ1)Sherlockアクションバー2)ViewPageIndicatorを実装し、tabPageIndicatorビューを実装すると、デフォルトのタブが提供され、ハイリゲットタブの下線が提供されます。 下線の色を変更したい場合は、アンダーラインで使用されているdrawableの9番目のパッチ画像を変更する必要があります。ここで

は、サンプルコード

XMLビューのサンプル

   <LinearLayout 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:orientation="vertical" > 

     <com.viewpagerindicator.TabPageIndicator 
      android:id="@+id/indicator" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:background="@color/lock_background_greeen" 
      /> 

     <android.support.v4.view.ViewPager 
      android:id="@+id/pager" 
      android:layout_width="fill_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" /> 
    </LinearLayout> 
</FrameLayout> 

断片コード

 final FragmentPagerAdapter adapter = new FragmentChildPageAdapter(getChildFragmentManager());//getActivity().getSupportFragmentManager() 

    final ViewPager pager = (ViewPager) v.findViewById(R.id.pager); 
    pager.setAdapter(adapter); 

    final TabPageIndicator indicator = (TabPageIndicator) v.findViewById(R.id.indicator); 
    indicator.setViewPager(pager); 
関連する問題