Dan*_*iel 3 android android-viewpager 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;
}
Run Code Online (Sandbox Code Playgroud)
我需要识别当前页面(位置)并参考相关的资源布局(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;
}
Run Code Online (Sandbox Code Playgroud)
在这里注释掉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;
}
Run Code Online (Sandbox Code Playgroud)
这就是全部.现在,您可以根据我们用作标志的标题名称来扩展您的视图.
| 归档时间: |
|
| 查看次数: |
2863 次 |
| 最近记录: |