私のAndroidアプリには、内部に2つのビュー、navigation_activity、および別の変数レイアウトを持つViewPagerがあります。アプリが開始されると、home_activity (開始時の変数レイアウト) で開始されますが、左にスライドしてナビゲーション バーに移動し、ボタンをクリックすると、ホームから別のビューに切り替えるには変数レイアウトが必要です... 今のところ私はこのようなシステムを持っています:
public class ViewPagerAdapter extends PagerAdapter
{
static int iFocusedActivity = R.layout.activity_home;
public int getCount()
{
return 2;
}
public Object instantiateItem(View collection, int position)
{
LayoutInflater inflater = (LayoutInflater) collection.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resId = 0;
switch (position)
{
case 0:
resId = R.layout.activity_navigation;
break;
case 1:
resId = iFocusedActivity;
break;
}
View view = inflater.inflate(resId, null);
((ViewPager) collection).addView(view, 0);
return view;
}
public boolean isViewFromObject(View arg0, Object arg1)
{
return arg0 == ((View) arg1);
}
public static void setFocus(int iActivity)
{
iFocusedActivity = iActivity;
}
public void destroyItem( View pager, int position, Object view )
{
((ViewPager)pager).removeView( (View)view );
}
}
それはビューをうまく変更しました(setFocus()が呼び出され、新しいアダプタがページャに与えられます)問題は、レイアウトがページャによって採用されたときに伝播する必要があるListViewを持つlayout_verblistというレイアウトがありますボタンのクリックでコードを呼び出しても何も起こりません...これは大きな問題であることがわかります。Viewpager でレイアウトのリストを伝播するにはどうすればよいですか?