Java 在viewpages中使用更多视图
如何在viewpages中使用不同的视图?我想不出来 例如,带有列表框的视图和带有按钮的视图 这是我的代码:Java 在viewpages中使用更多视图,java,android,Java,Android,如何在viewpages中使用不同的视图?我想不出来 例如,带有列表框的视图和带有按钮的视图 这是我的代码: package com.stylingandroid.viewpager; import com.viewpagerindicator.TitlePageIndicator; import android.app.Activity; import android.os.Bundle; import android.support.v4.view.ViewPager; public
package com.stylingandroid.viewpager;
import com.viewpagerindicator.TitlePageIndicator;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
public class ViewPagerActivity extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ViewPagerAdapter adapter = new ViewPagerAdapter(this);
ViewPager pager = (ViewPager) findViewById(R.id.viewpager);
TitlePageIndicator indicator = (TitlePageIndicator) findViewById(R.id.indicator);
pager.setAdapter(adapter);
indicator.setViewPager(pager);
}
}
如何在viewpages中使用不同的视图?我想不出来
例如,带有列表框的视图和带有按钮的视图
这是我的代码:
package com.stylingandroid.viewpager;
import com.viewpagerindicator.TitlePageIndicator;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
public class ViewPagerActivity extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ViewPagerAdapter adapter = new ViewPagerAdapter(this);
ViewPager pager = (ViewPager) findViewById(R.id.viewpager);
TitlePageIndicator indicator = (TitlePageIndicator) findViewById(R.id.indicator);
pager.setAdapter(adapter);
indicator.setViewPager(pager);
}
}
这里是适配器:
package com.stylingandroid.viewpager;
import android.content.Context;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.widget.TextView;
import com.viewpagerindicator.TitleProvider;
public class ViewPagerAdapter extends PagerAdapter
implements TitleProvider
{
private static String[] titles = new String[]
{
"Page 1",
"Page 2",
"Page 3"
};
private final Context context;
public ViewPagerAdapter( Context context )
{
this.context = context;
}
@Override
public String getTitle( int position )
{
return titles[ position ];
}
@Override
public int getCount()
{
return titles.length;
}
@Override
public Object instantiateItem( View pager, int position )
{
TextView v = new TextView( context );
v.setText(titles[position]);
((ViewPager)pager).addView(v,0);
return v;
}
@Override
public void destroyItem( View pager, int position, Object view )
{
((ViewPager)pager).removeView( (TextView)view );
}
@Override
public boolean isViewFromObject( View view, Object object )
{
return view.equals( object );
}
@Override
public void finishUpdate( View view ) {}
@Override
public void restoreState( Parcelable p, ClassLoader c ) {}
@Override
public Parcelable saveState() {
return null;
}
@Override
public void startUpdate( View view ) {}
}
您需要修改
PagerAdapter
中的InstanceItem()
方法,动态构建每个视图,而不是每次简单地添加TextView
。例如,可以为每个位置充气不同的布局:
@Override
public Object instantiateItem( View pager, int position )
{
LayoutInflator inflator = LayoutInflator.from( context );
View v = null;
switch( position )
{
case 0:
v = inflator.inflate( R.layout.layout1, (ViewPager)pager, false );
break;
case 1:
v = inflator.inflate( R.layout.layout2, (ViewPager)pager, false );
break;
.
.
.
}
v.setText(titles[position]);
((ViewPager)pager).addView(v,0);
return v;
}
你已经有代码了,但我想指出的是,如果你要充气,这需要在那里
@Override
public boolean isViewFromObject( View view, Object object )
{
return view.equals( object );
}