怎么在viewpager里添加lisrview
时间: 2024-06-09 22:09:06 浏览: 53
要在 ViewPager 中添加 ListView,你需要在 ViewPager 的每个页面上放置 ListView。你可以使用 Fragment 来实现这一点,每个 Fragment 包含一个 ListView。然后,你可以使用 FragmentPagerAdapter 或 FragmentStatePagerAdapter 将这些 Fragment 添加到 ViewPager 中。
以下是一个简单的示例代码,说明如何在 ViewPager 中添加 ListView:
1. 创建一个 Fragment 类,包含一个 ListView:
```
public class MyFragment extends Fragment {
private ListView listView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_layout, container, false);
listView = view.findViewById(R.id.list_view);
// 初始化 ListView
return view;
}
// 提供一个方法来设置 ListView 的数据
public void setData(List<String> data) {
ArrayAdapter<String> adapter = new ArrayAdapter<>(getContext(), android.R.layout.simple_list_item_1, data);
listView.setAdapter(adapter);
}
}
```
2. 创建一个 FragmentPagerAdapter 或 FragmentStatePagerAdapter:
```
public class MyPagerAdapter extends FragmentPagerAdapter {
private List<MyFragment> fragments = new ArrayList<>();
public MyPagerAdapter(FragmentManager fm) {
super(fm);
// 初始化 Fragment
fragments.add(new MyFragment());
fragments.add(new MyFragment());
fragments.add(new MyFragment());
}
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return fragments.size();
}
}
```
3. 在 Activity 中设置 ViewPager 和 Adapter:
```
public class MainActivity extends AppCompatActivity {
private ViewPager viewPager;
private MyPagerAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager = findViewById(R.id.view_pager);
adapter = new MyPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(adapter);
// 设置 ListView 的数据
List<String> data = new ArrayList<>();
data.add("Item 1");
data.add("Item 2");
data.add("Item 3");
adapter.getItem(0).setData(data);
data = new ArrayList<>();
data.add("Item 4");
data.add("Item 5");
data.add("Item 6");
adapter.getItem(1).setData(data);
data = new ArrayList<>();
data.add("Item 7");
data.add("Item 8");
data.add("Item 9");
adapter.getItem(2).setData(data);
}
}
```
在这个示例代码中,我们创建了一个包含三个 Fragment 的 ViewPager,并且每个 Fragment 都包含一个 ListView。我们使用 FragmentPagerAdapter 来管理这些 Fragment,并且通过调用 Fragment 的 setData() 方法来设置 ListView 的数据。