Android:如何更改ViewPager的样式?

时间:2015-05-12 09:03:22

标签: android android-viewpager android-styles viewpagerindicator

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

  <android.support.v4.view.ViewPager
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <android.support.v4.view.PagerTabStrip
        android:id="@+id/pager_header"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="top"
        android:padding="@dimen/abc_action_bar_content_inset_material" />
  </android.support.v4.view.ViewPager>
</LinearLayout>

我想对ViewPagerPagerTabStrip应用不同的风格。我尝试了Android提供的一些默认样式,可以改变标签栏和指标的外观,但什么也没发生。 请问,为此目的有什么有用的风格吗?也许我可以继承并改变一些属性。

这些是activity.java中的相关声明

public class MainActivity extends FragmentActivity

和当前的style.xml

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
</style>

1 个答案:

答案 0 :(得分:2)

如果您想要更改颜色(相应于主题),您可以自定义主题,例如:

    <style name="AppTheme" parent="Theme.AppCompat">
        <item name="colorPrimary">@color/md_light_blue_500</item>
        <item name="colorPrimaryDark">@color/md_light_blue_700</item>
        <item name="colorAccent">@color/md_blue_a200</item>
    </style>

并添加背景属性:

<android.support.v4.view.PagerTabStrip
    android:id="@+id/pager_header"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="top"
    android:background="?attr/colorPrimaryDark"
    android:padding="@dimen/abc_action_bar_content_inset_material" />

希望我给你一些想法:)