想到啥写啥第一期:致力于更简单易懂的代码解决我们安卓小白遇到的问题
viewPager+fragment
viewPager实现可以左右滑动切换界面
材料一共三样:主页面UI的ViewPager,新建一个Fragment把自己做的界面放进去,新建一个ViewPagerAdapter适配器
上代码:
1,先写Fragment的UI
<?xml version="1.0" encoding="utf-8"?>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="40sp"
android:id="@+id/text"
android:text="测试文本" />
</LinearLayout>
然后.java
public class MyFrag extends Fragment {
String text ;
int background;
//构造一个方法只是为了用同一个UI显示出来的背景颜色和内容稍微不一样而已
public MyFrag(String text,int background) {
this.text = text;
this.background = background;
}
private TextView textView;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.myfrag,container,false);
textView = view.findViewById(R.id.text);
textView.setText(text);
view.setBackgroundColor(background);
return view;
}
}
2,然后写适配器ViewPagerAdapter
class MyAdapter extends FragmentPagerAdapter{
FragmentManager manager;
List<Fragment> fragmentList;
//这些方法都是在继承之后按住alt+enter产生出来的,至于这个List<Fragment>使我自己写的待会儿用来放几个fragment
public MyAdapter(@NonNull FragmentManager fm, List<Fragment> fragmentList) {
super(fm);
this.manager = fm;
this.fragmentList = fragmentList;
}
@NonNull
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public int getCount() {
return fragmentList.size();
}
}
3,最后就是主页面MainActivity.java 的收尾工作
UI:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:gravity="center"
android:layout_height="match_parent"
tools:context=".MainActivity">
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewPage"
android:background="#0f0"
android:layout_width="match_parent"
android:layout_height="400sp"/>
</LinearLayout>
.java
public class MainActivity extends AppCompatActivity {
private ViewPager viewPager;
private List<Fragment> fragments = new ArrayList<>();
private MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager = findViewById(R.id.viewPage);
fragments.add(new MyFrag("测试碎片1", Color.BLUE));
fragments.add(new MyFrag("测试碎片2", Color.RED));
fragments.add(new MyFrag("测试碎片3", Color.YELLOW));
adapter = new MyAdapter(getSupportFragmentManager(),fragments);
viewPager.setAdapter(adapter);
}
}
这样就是完成了最基本的切换功能,至于放什么界面,都可以自己设计,然后建一个fragmen,再依葫芦画瓢的放进去
总框架就是这样,万变不离其宗,多用用就顺手了