Android中的ViewPager设置默认页 [英] Set default page for ViewPager in Android
本文介绍了Android中的ViewPager设置默认页的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我用下面的code,MAX是2页。默认位置是0,并增加了一个新的页面右侧。我抬高2布局文件。
我怎样才能显示第1页的应用程序启动时,并添加了新的一页向左?
谢谢你。
的main.xml
<?XML版本=1.0编码=UTF-8&GT?;
< LinearLayout中的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:方向=垂直的android:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT>
< android.support.v4.view.ViewPager
机器人:layout_width =WRAP_CONTENT机器人:layout_height =WRAP_CONTENT
机器人:ID =@ + ID / pagerView/>
< / LinearLayout中>
的Java code
公共类MyPagerActivity延伸活动{
私人上下文的背景下;
私人诠释PAGENUMBER; @覆盖
公共无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.main);
上下文=这一点; ViewPager pagerView =(ViewPager)findViewById(R.id.pagerView);
pagerView.setAdapter(新AwesomePagerAdapter()); }
私有类AwesomePagerAdapter扩展PagerAdapter { @覆盖
公共无效destroyItem(查看收集,INT位置,对象视图){
((ViewPager)集合).removeView((视图)视图);
} @覆盖
公共无效finishUpdate(查看为arg0){
// setPageTitles(getPageNumber());
} @覆盖
公众诠释的getCount(){
返回2;
} @覆盖
公共对象instantiateItem(查看收集,INT位置){
/ * TextView的电视=新的TextView(MyPagerActivity.this);
tv.setText(卓悦PAUG+位置);
tv.setTextColor(Color.WHITE);
tv.setTextSize(30); ((ViewPager)集合).addView(电视,0); 返回电视; * / 查看查看= getViewToShow(位置);
((ViewPager)集合).addView(查看,0);
返回视图。
} @覆盖
公共布尔isViewFromObject(查看视图,Object对象){
返回查看==((查看)对象);
} @覆盖
公共无效restoreState(Parcelable为arg0,ARG1的ClassLoader){
// TODO自动生成方法存根 } @覆盖
公共Parcelable saveState和(){
// TODO自动生成方法存根
返回null;
} @覆盖
公共无效startUpdate(查看为arg0){
// TODO自动生成方法存根 } }
私人查看getViewToShow(INT位置){
查看查看= NULL;
查看布局;
LayoutInflater mInflater =(LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 开关(位置){ 情况下0:
布局= mInflater.inflate(R.layout.elements,NULL);
鉴于=布局;
打破;
案例1:查看=
布局= mInflater.inflate(R.layout.elements2,NULL);
鉴于=布局; 打破;
}
返回视图。
}}
解决方案
您是否尝试过使用 setCurrentItem
方法?
I am using the following code, MAX is 2 pages. By default the position is 0 and adds a new page to the right. I inflate two layout files.
How can I show the page1 when the app starts and add a new page to the left ? Thanks.
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<android.support.v4.view.ViewPager
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:id="@+id/pagerView" />
</LinearLayout>
Java code
public class MyPagerActivity extends Activity {
private Context context;
private int pageNumber;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
context = this;
ViewPager pagerView = (ViewPager)findViewById(R.id.pagerView);
pagerView.setAdapter(new AwesomePagerAdapter());
}
private class AwesomePagerAdapter extends PagerAdapter{
@Override
public void destroyItem(View collection, int position, Object view) {
((ViewPager) collection).removeView((View)view);
}
@Override
public void finishUpdate(View arg0) {
//setPageTitles(getPageNumber());
}
@Override
public int getCount() {
return 2;
}
@Override
public Object instantiateItem(View collection, int position) {
/* TextView tv = new TextView(MyPagerActivity.this);
tv.setText("Bonjour PAUG " + position);
tv.setTextColor(Color.WHITE);
tv.setTextSize(30);
((ViewPager) collection).addView(tv,0);
return tv;*/
View view = getViewToShow(position);
((ViewPager) collection).addView(view,0);
return view;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==((View)object);
}
@Override
public void restoreState(Parcelable arg0, ClassLoader arg1) {
// TODO Auto-generated method stub
}
@Override
public Parcelable saveState() {
// TODO Auto-generated method stub
return null;
}
@Override
public void startUpdate(View arg0) {
// TODO Auto-generated method stub
}
}
private View getViewToShow(int position){
View view = null;
View layout;
LayoutInflater mInflater = (LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
switch(position){
case 0:
layout = mInflater.inflate(R.layout.elements, null);
view = layout;
break;
case 1: view =
layout = mInflater.inflate(R.layout.elements2, null);
view = layout;
break;
}
return view;
}
}
解决方案
Have you tried using the setCurrentItem
method?
这篇关于Android中的ViewPager设置默认页的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文