pagerAdapter 作用:viewpager的适配器可以添加处Fragment以外的控件 重写4个方法 getCount() instantiateItm() destroyItem() isviewFromobjict() getPagerTitle()
注意:只有用了2,3两个标签,才需要添加getPageTitle方法
pagerTitleStrip 给viewparger加标题 用法:把他们嵌套在viewpager标签内
布局
<FrameLayout android:id="@+id/f1" android:layout_weight="1" android:layout_width="match_parent" android:layout_height="wrap_content"></FrameLayout> <FrameLayout android:id="@+id/f2" android:layout_weight="1" android:layout_width="match_parent" android:layout_height="wrap_content"></FrameLayout>ListFragmentMainActivity
public class MainActivity extends AppCompatActivity { Fragment1 fragment1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); FragmentManager manager = getSupportFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); fragment1 = new Fragment1(); transaction.add(R.id.f1,fragment1); transaction.add(R.id.f2,new Fragment2()); transaction.add(R.id.f1,new Fragment3()); transaction.commit(); }}
Fragment1
public class Fragment1 extends ListFragment { String[] strings={"北京","上海","江苏"}; @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setListAdapter(new ArrayAdapter<>(getActivity(),R.layout.support_simple_spinner_dropdown_item,strings)); } @Override public void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); EventBus.getDefault().post(strings[position]); } }**Fragment2 **
public class Fragment2 extends ListFragment { ArrayAdapter<String> arrayAdapter; @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); EventBus.getDefault().register(this); arrayAdapter = new ArrayAdapter<>(getActivity(), R.layout.support_simple_spinner_dropdown_item, new String[]{"海淀", "朝阳"}); setListAdapter(arrayAdapter); } @Subscribe(threadMode = ThreadMode.MAIN,sticky = true) public void show1(String i){ if (i.equals("北京")){ setListAdapter(arrayAdapter); }else if(i.equals("上海")){ setListAdapter(new ArrayAdapter<>(getActivity(),R.layout.support_simple_spinner_dropdown_item,new String[]{"奉贤区","大兴区"})); }else if (i.equals("江苏")){ setListAdapter(new ArrayAdapter<>(getActivity(),R.layout.support_simple_spinner_dropdown_item,new String[]{"无锡","宿迁"})); } } @Override public void onDestroy() { super.onDestroy(); EventBus.getDefault().unregister(this); } }布局
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".Main2Activity"> <android.support.v4.view.ViewPager android:id="@+id/view" android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.v4.view.PagerTabStrip android:layout_width="wrap_content" android:layout_height="wrap_content"> </android.support.v4.view.PagerTabStrip> </android.support.v4.view.ViewPager> </android.support.constraint.ConstraintLayout>代码
public class Main2Activity extends AppCompatActivity { List<ImageView> list=new ArrayList<>(); ViewPager viewPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); viewPager= findViewById(R.id.view); ImageView imageView = new ImageView(this); imageView.setImageResource(R.drawable.tu1); ImageView imageView1 = new ImageView(this); imageView1.setImageResource(R.drawable.tu2); ImageView imageView2 = new ImageView(this); imageView2.setImageResource(R.drawable.tu3); list.add(imageView); list.add(imageView1); list.add(imageView2); String[] strings={"标题一","标题二","标题三"}; MyAdapter myAdapter = new MyAdapter(list,strings); viewPager.setAdapter(myAdapter); } }
