当前位置:   article > 正文

Android studio简易微信界面_android studio 微信菜单

android studio 微信菜单

1.创建3个xml文件

分别为top.xml,bottom.xml,activity_main.xml。其中top作为微信界面的头部其中只有一个TextView控件,如图

bottom.xml作为微信底部按钮,在其中先再添加一个LinearLayout设置为垂直布局在下面添加Imagview(设置对应图标),TextView(设置“”消息”,“联系人”等文字)两个控件如图,注意对LinerLayout和TextView的id进行设置后面需要用到

可以复制该段在后面注意更该其中的text内容和图标样式最后的结果如图

最后在activity_main.xml中用include引用top,bottom在两个include中间添加framelayout布局(用来替换中间的内容)

2.在layout中新建四个fragment

同时会新建四个java文件注意更改名字四个fragment.xml内容基本一致

3.编写MainActivity.java

先声明需要用到的控件并创建类的实例,新建Fragment管理者fm

  1. Contacts contacts = new Contacts();
  2. Explore explore = new Explore();
  3. Message message = new Message();
  4. Myself myself = new Myself();
  5. LinearLayout line1;
  6. LinearLayout line2;
  7. LinearLayout line3;
  8. LinearLayout line4;
  9. private TextView textmessage;
  10. private TextView textcontacts;
  11. private TextView textexplore;
  12. private TextView textmyself;
  13. FragmentManager fm = getSupportFragmentManager();

 在OnCreate方法中findViewById控件,对想要被点击并做出回应的控件setOnClickListener建立监听

  1. line1 = findViewById(R.id.line1);
  2. line2 = findViewById(R.id.line2);
  3. line3 = findViewById(R.id.line3);
  4. line4 = findViewById(R.id.line4);
  5. textmessage = findViewById(R.id.textmessage);
  6. textcontacts = findViewById(R.id.textcontacts);
  7. textexplore = findViewById(R.id.textexplore);
  8. textmyself = findViewById(R.id.textmyself);
  9. line1.setOnClickListener(this);
  10. line2.setOnClickListener(this);
  11. line3.setOnClickListener(this);
  12. line4.setOnClickListener(this);

initFragment用来将四个Fragment加入到Activity中用show来显示,hidden用来隐藏fragment

  1. private void initFragment() {
  2. FragmentTransaction ft = fm.beginTransaction();
  3. ft.add(R.id.frame,message);
  4. ft.add(R.id.frame,contacts);
  5. ft.add(R.id.frame,myself);
  6. ft.add(R.id.frame,explore);
  7. ft.commit();
  8. }
  9. //初始化底部文字背景颜色
  10. private void initText() {
  11. textcontacts.setBackgroundColor(getColor(R.color.white));
  12. textmyself.setBackgroundColor(getColor(R.color.white));
  13. textmessage.setBackgroundColor(getColor(R.color.white));
  14. textexplore.setBackgroundColor(getColor(R.color.white));
  15. }
  16. private void hidden() {
  17. FragmentTransaction ft = fm.beginTransaction();;
  18. ft.hide(message);
  19. ft.hide(myself);
  20. ft.hide(contacts);
  21. ft.hide(explore);
  22. ft.commit();
  23. }

 在OnClick中搭配使用show和hidden做到点击底部按钮后只显示一个fragment

  1. public void onClick(View view) {
  2. FragmentTransaction ft = fm.beginTransaction();
  3. hidden();
  4. initText();
  5. if(view.getId() == R.id.line1) {
  6. ft.show(message);
  7. textmessage.setBackgroundColor(getColor(R.color.green));//点击后改变底部文字背景颜色
  8. }
  9. if(view.getId() == R.id.line2) {
  10. ft.show(contacts);
  11. textcontacts.setBackgroundColor(getColor(R.color.green));
  12. }
  13. if(view.getId() == R.id.line3) {
  14. ft.show(explore);
  15. textexplore.setBackgroundColor(getColor(R.color.green));
  16. }
  17. if(view.getId() == R.id.line4) {
  18. ft.show(myself);
  19. textmyself.setBackgroundColor(getColor(R.color.green));
  20. }
  21. ft.commit();
  22. }

4.添加RecyclerView

在任意一个fragment中添加RecyclerView控件用来显示一个列表内容,例如在消息界面中添加先在xml中添加控件,可以将text内容移动到顶部,列表显示在中间。同时新建一个xml文件命名为item(作为列表里每一行数据显示的样式)里面只用TextView一个控件(只有文字),注意设置id。

item.xml

5.编写对应fragment的java文件内容

list用来填充列表内容

  1. Context context;
  2. List<String> list1 = new ArrayList<>();
  3. RecyclerView recyclerView;
  4. private void initlist(){
  5. for(int i = 0;i < 9;i++){
  6. list1.add("这是第"+i+"行数据");
  7. }
  8. }

 在OnCreatView中添加如下代码

  1. public View onCreateView(LayoutInflater inflater, ViewGroup container,
  2. Bundle savedInstanceState) {
  3. // Inflate the layout for this fragment
  4. View view = inflater.inflate(R.layout.fg_message, container, false);
  5. context = view.getContext();
  6. initlist();
  7. recyclerView = view.findViewById(R.id.recyclerview);
  8. LinearLayoutManager manger = new LinearLayoutManager(context);
  9. manger.setOrientation(RecyclerView.VERTICAL);
  10. recyclerView.setLayoutManager(manger);
  11. MyAdpater myAdpater = new MyAdpater(context,list1);
  12. recyclerView.setAdapter(myAdpater);
  13. return view;
  14. }

需要用到的MyAdpater新建一个java文件创建一个java类

public class MyAdpater extends RecyclerView.Adapter<MyAdpater.MyViewHolder>

Alt+enter后会自动新建三个方法,对方法进行如下重写

  1. public MyAdpater.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
  2. View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item,parent,false);
  3. return new MyViewHolder(view);
  4. }
  5. //绑定数据,数据与view绑定
  6. @Override
  7. public void onBindViewHolder(@NonNull MyAdpater.MyViewHolder holder, int position) {
  8. holder.item.setText(list1.get(position));
  9. }
  10. @Override
  11. public int getItemCount() {
  12. return list1.size();
  13. }

将传递过来的数据,赋值给本地变量

  1. List<String> list1;
  2. Context context1;
  3. public MyAdpater(Context context,List<String> list){
  4. list1 = list;
  5. context1 = context;
  6. }

创建构造函数

  1. public class MyViewHolder extends RecyclerView.ViewHolder {
  2. TextView item;
  3. public MyViewHolder(View itemview) {
  4. super(itemview);
  5. this.item = itemview.findViewById(R.id.itemtext);
  6. }
  7. }

 6.最后启动虚拟机后运行的结果

7.全部的需要编写java代码

 https://gitee.com/ychuans/android-studio_java

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/676354
推荐阅读
相关标签
  

闽ICP备14008679号