突出或强调所选TabPageIndicator(Highlight or underline sel

2019-08-02 02:21发布

我已在平板电脑大小的景观布局dualpane和我使用的片段。

在左边我有一个列表视图中的片段。 当单击该项目列表中的一个发生右片段把细节。

在右(细节)片段的布局有一个com.viewpagerindicator.TabPageIndicatorandroid.support.v4.view.ViewPager. 该ViewPager将加载2个元素,每一个都有其com.viewpagerindicator.TabPageIndicator 。 我想突出强调或所选择的选项卡,但我没有这样做。

我希望你有一些建议:)

Answer 1:

默认情况下,TabPageIndicator不适用任何风格。 为了实现从ViewPagerIndicator默认样式添加以下行无论是application标签或适当的activity中你的标签manifest.xml

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

然后添加一个res\values\styles.xml文件到您的项目有以下内容

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

我使用了android光主题为我的应用程序,但你可能要改变这你现在使用的主题。

如果要更改默认VPI风格改变styles.xml文件是这样的:

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

需要注意的是上面的设置是完全一样的默认VPI样式为TabPageIndicactor,所以你还是得让你想改变。



Answer 2:

只要使用以下两种库1)大侦探动作条2)ViewPageIndicator和实施tabPageIndicator查看它会提供你默认选项卡和highliget选项卡提供下划线。 如果你想比你需要改变这underlinbe用于绘制的第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);


文章来源: Highlight or underline selected TabPageIndicator