其他分享
首页 > 其他分享> > Android:ViewPagerIndicator – 为不同的页面创建不同的布局

Android:ViewPagerIndicator – 为不同的页面创建不同的布局

作者:互联网

我需要创建四个不同的布局,每个布局都是一个ViewPagerIndicator页面.
我怎样才能做到这一点? ViewPagerIndicator已经在工作,但我正在使用http://viewpagerindicator.com中的示例,并为所有页面创建了一个简单的TextView.

请参阅示例(TestFragment.java):

  @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    TextView text = new TextView(getActivity());
    text.setGravity(Gravity.CENTER);
    text.setText(mContent);
    text.setTextSize(20 * getResources().getDisplayMetrics().density);
    text.setPadding(20, 20, 20, 20);

    LinearLayout layout = new LinearLayout(getActivity());
    layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
    layout.setGravity(Gravity.CENTER);
    layout.addView(text);

    return layout;
}

我需要识别当前页面(位置)并参考相关的资源布局(XML).可能吗?

我还需要确保在创建活动时一次只加载所有页面的所有视图,以便稍后更新值.

我感谢任何帮助!!
谢谢

解决方法:

我找到了一个适合我的简单解决方案.这就是我做的.

TestFragment.class

      public static TestFragment newInstance(String content) {
        TestFragment fragment = new TestFragment();
//
//        StringBuilder builder = new StringBuilder();
//        for (int i = 0; i < 20; i++) {
//            builder.append(content).append(" ");
//        }
//        builder.deleteCharAt(builder.length() - 1);
        fragment.mContent = content;

        return fragment;
    }

在这里注释掉for循环.只需获取我们将用作标志的mContent.

现在在你的onCreateView()中更改如下,

   @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//        TextView text = new TextView(getActivity());
//        text.setGravity(Gravity.CENTER);
//        text.setText(mContent);
//        text.setTextSize(20 * getResources().getDisplayMetrics().density);
//        text.setPadding(20, 20, 20, 20);
//
//        LinearLayout layout = new LinearLayout(getActivity());
//        layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
//        layout.setGravity(Gravity.CENTER);
//        layout.addView(text);
        Log.i("mContent",mContent);
        View view=null;
        if(mContent.equalsIgnoreCase("title1"))
        {
            view = inflater.inflate(R.layout.one, container, false);

        }
        else if(mContent.equalsIgnoreCase("title2"))
        {
            view = inflater.inflate(R.layout.two, container, false);
        }
        else if(mContent.equalsIgnoreCase("title3"))
        {
            view = inflater.inflate(R.layout.three, container, false);
        }
        return view;

    }

这就是全部.现在,您可以根据我们用作标志的标题名称来扩展您的视图.

标签:viewpagerindicator,android,android-viewpager
来源: https://codeday.me/bug/20190826/1728967.html