Java 简单ViewPager-单一布局
我正在尝试从一组图像中创建一个简单的ViewPager 我的阵列是:Java 简单ViewPager-单一布局,java,android,arrays,android-viewpager,Java,Android,Arrays,Android Viewpager,我正在尝试从一组图像中创建一个简单的ViewPager 我的阵列是: <string-array name="ot_images"> <item>"file:///android_res/drawable/ot_100.jpg"</item> <item>"file:///android_res/drawable/ot_101.jpg"</item> <item>"file:///android_res
<string-array name="ot_images">
<item>"file:///android_res/drawable/ot_100.jpg"</item>
<item>"file:///android_res/drawable/ot_101.jpg"</item>
<item>"file:///android_res/drawable/ot_102.jpg"</item>
<item>"file:///android_res/drawable/ot_103.jpg"</item>
我遵循了本教程:
一切正常,但我的问题是:
如何使用1个布局而不是5个布局的本教程?
谢谢大家! 您只需定义一个公共布局,比如
common_layout.xml
,并通过覆盖instantiateItem
方法将其放置在viewpager的容器中。
在下面的示例中,我假设您有一个id为text的TextView
public Object instantiateItem(View collection, int position) {
LayoutInflater inflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.common_layout, null);
switch (position) {
case 0:
((TextView)view.findViewById(R.id.text)).setText("One");
break;
case 1:
((TextView)view.findViewById(R.id.text)).setText("Two");
break;
case 2:
((TextView)view.findViewById(R.id.text)).setText("Three");
break;
case 3:
((TextView)view.findViewById(R.id.text)).setText("Four");
break;
case 4:
((TextView)view.findViewById(R.id.text)).setText("Five");
break
}
((ViewPager) collection).addView(view, 0);
return view;
}
您只需定义一个公共布局,比如
common\u layout.xml
,并通过覆盖instantiateItem
方法将其放置在viewpager的容器中。
在下面的示例中,我假设您有一个id为text的TextView
public Object instantiateItem(View collection, int position) {
LayoutInflater inflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.common_layout, null);
switch (position) {
case 0:
((TextView)view.findViewById(R.id.text)).setText("One");
break;
case 1:
((TextView)view.findViewById(R.id.text)).setText("Two");
break;
case 2:
((TextView)view.findViewById(R.id.text)).setText("Three");
break;
case 3:
((TextView)view.findViewById(R.id.text)).setText("Four");
break;
case 4:
((TextView)view.findViewById(R.id.text)).setText("Five");
break
}
((ViewPager) collection).addView(view, 0);
return view;
}
请解释清楚//希望这更好,谢谢。你可以使用@Kushwaha的答案。只需将文本视图替换为图像资源..请解释清楚//希望这更好,谢谢。您可以使用@Kushwaha的答案。只需将文本视图替换为图像资源。。
public Object instantiateItem(View collection, int position) {
LayoutInflater inflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.common_layout, null);
switch (position) {
case 0:
((TextView)view.findViewById(R.id.text)).setText("One");
break;
case 1:
((TextView)view.findViewById(R.id.text)).setText("Two");
break;
case 2:
((TextView)view.findViewById(R.id.text)).setText("Three");
break;
case 3:
((TextView)view.findViewById(R.id.text)).setText("Four");
break;
case 4:
((TextView)view.findViewById(R.id.text)).setText("Five");
break
}
((ViewPager) collection).addView(view, 0);
return view;
}