第四章、android入门
目录
- 安卓入门
- 七、ViewPager
- 1、ViewPager
- 八、Fragment
- 1、基本使用
- 2、动态添加Fragment
- 七、ViewPager
安卓入门
七、ViewPager
1、ViewPager
- layout1.xml、layout2.xml、layout3.xml
<?xml version="1.0" encoding="utf-8"?>
- activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
- MyAdapter
public class MyAdapter extends PagerAdapter {
private List mListView;
public MyAdapter(List mListView) {
this.mListView = mListView;
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
container.addView(mListView.get(position), 0);
return mListView.get(position);
}
@Override
public int getCount() {
return mListView.size();
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view == object;
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
container.removeView(mListView.get(position));
}
}
- MainActivity
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LayoutInflater lf = getLayoutInflater().from(this);
View view1 = lf.inflate(R.layout.layout1, null);
View view2 = lf.inflate(R.layout.layout2, null);
View view3 = lf.inflate(R.layout.layout3, null);
ArrayList viewList = new ArrayList<>();
viewList.add(view1);
viewList.add(view2);
viewList.add(view3);
ViewPager viewPager = findViewById(R.id.vp);
MyAdapter myAdapter = new MyAdapter(viewList);
viewPager.setAdapter(myAdapter);
}
}
八、Fragment
1、基本使用
- BlankFragment
public class BlankFragment extends Fragment {
private View root;
private TextView tv;
private Button btn;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (root == null) {
root = inflater.inflate(R.layout.fragment_blank, container, false);
}
tv = root.findViewById(R.id.tv);
btn = root.findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tv.setText("世界");
}
});
return root;
}
}
- fragment_blank.xml
<?xml version="1.0" encoding="utf-8"?>
- activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
2、动态添加Fragment
- activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
- MainActivity
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
View btn1 = findViewById(R.id.btn1);
btn1.setOnClickListener(this);
View btn2 = findViewById(R.id.btn2);
btn2.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.btn1) {
replaceFragment(new BlankFragment());
} else if (v.getId() == R.id.btn2) {
replaceFragment(new ItemFragment());
}
}
private void replaceFragment(Fragment fragment) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.replace(R.id.fl, fragment);
transaction.addToBackStack(null);
transaction.commit();
}
}