java - 使用 PagerTitleStrip 均匀分布标题

标签 java android android-viewpager pagertitlestrip

这是我的 PagerTitleStrip 的 XML:

    <android.support.v4.view.ViewPager
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/view_pager"
        android:layout_width="match_parent"
        android:layout_height="500dp"
        android:scaleType="centerCrop">

        <android.support.v4.view.PagerTitleStrip
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/viepagertitlestrip"
            android:layout_gravity="top" />

    </android.support.v4.view.ViewPager>

以下是我的自定义 PagerAdapter 类:

public class CustomPagerAdapter extends PagerAdapter {

    private int[] image_resources = {
            R.drawable.1,
            R.drawable.2,
            R.drawable.3,
    };
    private Context ctx;
    private LayoutInflater layoutInflater;
    public CustomPagerAdapter(Context ctx) {
        this.ctx = ctx;
    }

    @Override
    public int getCount() {
        return image_resources.length;
    }

    @Override
    public boolean isViewFromObject(View view, Object o) {
        return (view == (RelativeLayout) o);
    }

    @Override
    public CharSequence getPageTitle(int position) {
        String[] titlesArray = {
                "Title 1",
                "Title 2",
                "Title 3",
        };

        return titlesArray[position];
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        layoutInflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View item_view = layoutInflater.inflate(R.layout.pager_item, container, false);
        ImageView imageview = (ImageView) item_view.findViewById(R.id.image_view);
        imageview.setImageResource(image_resources[position]);
        container.addView(item_view);
        return item_view;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((RelativeLayout) object);
    }
}

用于修改 PagerTitleStrip 的 XML 元素的自定义样式:

<style name="viepagertitlestrip">
    <item name="android:layout_width">fill_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:background">#d3d3d3</item>
    <item name="android:textColor">#666666</item>
    <item name="android:textSize">12sp</item>
</style>

就我个人而言,我发现 PagerTitleStrip 默认情况下非常丑陋。我讨厌下一页的标题被挤压到屏幕的一侧。我的图像数组将包含大约 20 张图像。我基本上希望每个寻呼机标题都是一个小点,并且我希望它们全部均匀分布在一个页面上。这可能吗?

最佳答案

要将 GitHub 项目添加到您的构建中:

  1. JitPack 存储库添加到您的构建文件中。

将其添加到存储库末尾的 build.gradle 中:

repositories {
    // ...
    maven { url "https://jitpack.io" }
 }
  • 添加依赖

    dependencies {
    compile 'com.github.JakeWharton:ViewPagerIndicator:2.4.1@aar'
    }
    
  • 关于java - 使用 PagerTitleStrip 均匀分布标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33868102/

    相关文章:

    java - NoSuchMethodError 在我的 android 设备上运行时确实存在的方法

    javascript - 自动点击两个按钮

    android - 如何使用安卓ViewPager?

    java - XStream 无法在反序列化为 java 时为字段名添加别名

    java - 在 Java 中导入库

    android - 切换 onCheckedChangedListner 不在工具栏菜单内注册点击

    java - 使用 ViewPager 和 Fragments 时无法动态更改 textView 的文本

    java - 从 arrayList 中删除对象并打印出剩余的对象

    java - servlet 返回空白页

    android - ViewPager 转换像 Google Play Music "Player"