当前位置:   article > 正文

AS移动开发--类微信界面的实现_微信app界面的设计与实现

微信app界面的设计与实现

预期目标:

设计一个app的门户框架,需要实现3-4个tab切换效果;

功能的实现要求需要的技术为:activity、xml、fragment;

在任一tab页中实现列表效果(本功能的实现需要使用recycleview)。

使用的软件:Andriod Studio

设计思路:

1.实现类微信界面:

将界面分为上、中、下三个子布局,分别为top.xml, tab.xml, button.xml文件,

中间部分的内容分别为tab1.xml,tab2.xml, tab3.xml,tab4.xml。

2.实现列表效果:

将任一tab页面的内容替换成列表。

设计过程:

一、xml页面布局

        XML文件被广泛用于定义Android应用程序的用户界面布局。通过XML可以描述界面中的视图组件、其相对位置关系、样式和属性等。Android使用一种叫做"层叠布局"的方式来解析和渲染这些XML布局文件,从而实现应用程序界面的显示。

1.设计头部布局top.xml

        根元素:布局的根元素是一个LinearLayout,通过xmlns属性指定了命名空间。

        LinearLayout属性:LinearLayout的属性设置为android:layout_width="match_parent"android:layout_height="match_parent",意味着它会占据父容器(通常是屏幕)的全部宽度和高度。

        子视图TextView:FrameLayout中添加了一个TextView作为子视图。TextView是一个文本视图,用于显示文本内容。 

        TextView属性:TextView的属性设置如下:

                android:id="@+id/微信":为TextView指定了一个唯一的ID。
                android:layout_width="match_parent"和android:layout_height="wrap_content":将TextView的宽度设置为与父容器相同,高度根据内容自适应。
                android:layout_weight="1":LinearLayout中有多个子视图时,通过设置权重来占据剩余空间的比例,这里将TextView的权重设置为1。
                android:background="#4CAF50":设置TextView的背景颜色为绿色。
                android:gravity="center":设置文本内容在TextView中的居中对齐。
                android:text="微信":设置TextView的文本内容为"微信"。
                android:textColor="@color/white":设置文本颜色为白色。
                android:textSize="40sp":设置文本大小为40sp 。

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent">
  5. <TextView
  6. android:id="@+id/微信"
  7. android:layout_width="match_parent"
  8. android:layout_height="wrap_content"
  9. android:layout_weight="1"
  10. android:background="#4CAF50"
  11. android:gravity="center"
  12. android:text="微信"
  13. android:textColor="@color/white"
  14. android:textSize="40sp" />
  15. </LinearLayout>

设计界面展示:

2.设计底部布局bottun.xml

先创建一个水平布局的LinearLayout作为父容器,再创建四个垂直布局的LinearLayout子布局,子布局包含一个图片视图和一个居中对齐的文本视图。

     

  1. 根元素:布局的根元素是一个LinearLayout。

  2. LinearLayout属性:LinearLayout的属性设置为android:layout_width="match_parent"android:layout_height="wrap_content",意味着它会占据父容器的全部宽度,高度根据内容自适应。

  3. LinearLayout:android:orientation="horizontal",布局中组件的排列方式,有horizontal(水平)和vertical(垂直)两种方式。

  4. 子视图LinearLayout1:第一个LinearLayout作为一个底部导航栏中的一个按钮,设置与父容器宽度相等的宽度,并设置权重为1。

  5. ImageView:LinearLayout1中添加了一个ImageView,用于显示一个图标。ImageView的属性设置如下:

    • android:id="@id/imageView1":为ImageView指定了一个唯一的ID。
    • android:layout_width="match_parent"android:layout_height="wrap_content":将ImageView的宽度设置为与父容器相同,高度根据内容自适应。
    • android:contentDescription="消息":设置图标的内容描述为"消息"。
    • android:src="@android:drawable/ic_menu_send":设置图标的资源为系统提供的ic_menu_send图标。
  6. TextView:LinearLayout1中添加了一个TextView,用于显示一个文本标签。TextView的属性设置如下:

    • android:id="@+id/textView1":为TextView指定了一个唯一的ID。
    • android:layout_width="match_parent"android:layout_height="wrap_content":将TextView的宽度设置为与父容器相同,高度根据内容自适应。
    • android:gravity="center":设置文本内容在TextView中的居中对齐。
    • android:text="消息":设置TextView的文本内容为"消息"。
    • android:textSize="25sp":设置文本大小为25sp。

其他三个LinearLayout中分别包含一个ImageView和一个TextView,用于显示不同的图标和文本标签。

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:tools="http://schemas.android.com/tools"
  4. android:id="@+id/bottun"
  5. android:layout_width="match_parent"
  6. android:layout_height="wrap_content"
  7. android:orientation="horizontal">
  8. <LinearLayout
  9. android:id="@+id/LinearLayout1"
  10. android:layout_width="0dp"
  11. android:layout_height="wrap_content"
  12. android:layout_weight="1"
  13. android:orientation="vertical"
  14. tools:ignore="UseCompoundDrawables">
  15. <ImageView
  16. android:id="@id/imageView1"
  17. android:layout_width="match_parent"
  18. android:layout_height="wrap_content"
  19. android:contentDescription="消息"
  20. android:src="@android:drawable/ic_menu_send" />
  21. <TextView
  22. android:id="@+id/textView1"
  23. android:layout_width="match_parent"
  24. android:layout_height="wrap_content"
  25. android:gravity="center"
  26. android:text="消息"
  27. android:textSize="25sp" />
  28. </LinearLayout>
  29. <LinearLayout
  30. android:id="@+id/LinearLayout2"
  31. android:layout_width="0dp"
  32. android:layout_height="wrap_content"
  33. android:layout_weight="1"
  34. android:orientation="vertical"
  35. tools:ignore="UseCompoundDrawables">
  36. <ImageView
  37. android:id="@+id/imageView2"
  38. android:layout_width="match_parent"
  39. android:layout_height="wrap_content"
  40. android:contentDescription="联系人"
  41. android:src="@android:drawable/ic_menu_call" />
  42. <TextView
  43. android:id="@+id/textView2"
  44. android:layout_width="match_parent"
  45. android:layout_height="wrap_content"
  46. android:gravity="center"
  47. android:text="联系人"
  48. android:textSize="25sp" />
  49. </LinearLayout>
  50. <LinearLayout
  51. android:id="@+id/LinearLayout3"
  52. android:layout_width="0dp"
  53. android:layout_height="wrap_content"
  54. android:layout_weight="1"
  55. android:orientation="vertical"
  56. tools:ignore="UseCompoundDrawables">
  57. <ImageView
  58. android:id="@+id/imageView3"
  59. android:layout_width="match_parent"
  60. android:layout_height="wrap_content"
  61. android:contentDescription="设置"
  62. android:src="@android:drawable/ic_menu_preferences" />
  63. <TextView
  64. android:id="@+id/textView3"
  65. android:layout_width="match_parent"
  66. android:layout_height="wrap_content"
  67. android:gravity="center"
  68. android:text="设置"
  69. android:textSize="25sp" />
  70. </LinearLayout>
  71. <LinearLayout
  72. android:id="@+id/LinearLayout4"
  73. android:layout_width="0dp"
  74. android:layout_height="wrap_content"
  75. android:layout_weight="1"
  76. android:orientation="vertical"
  77. tools:ignore="UseCompoundDrawables">
  78. <ImageView
  79. android:id="@+id/imageView4"
  80. android:layout_width="match_parent"
  81. android:layout_height="wrap_content"
  82. android:contentDescription="朋友圈"
  83. android:src="@android:drawable/ic_menu_gallery" />
  84. <TextView
  85. android:id="@+id/textView4"
  86. android:layout_width="match_parent"
  87. android:layout_height="wrap_content"
  88. android:gravity="center"
  89. android:text="朋友圈"
  90. android:textSize="25sp" />
  91. </LinearLayout>
  92. </LinearLayout>

设计界面展示:

3.设计中间布局fragment_1.xml

FrameLayout是一种布局容器,用于在Android应用程序中展示视图。允许子视图被放置在堆叠顺序中,进而进行界面整合。

  1. FrameLayout属性:FrameLayout的属性设置如下:

            android:layout_width="match_parent"android:layout_height="match_parent":设置FrameLayout的宽度和高度都为与父容器匹配。
  2. TextView:在FrameLayout中添加了一个TextView作为子视图,用于显示文本内容。TextView的属性设置如下:

    • android:layout_width="match_parent"android:layout_height="match_parent":将TextView的宽度和高度都设置为与父容器匹配,填满整个FrameLayout。
    • android:textSize="45dp":设置文本大小为45dp。
    • android:text="这是微信界面":设置文本内容为"这是微信界面"。
    • android:gravity="center":设置文本内容在TextView中的居中对齐。
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:tools="http://schemas.android.com/tools"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent"
  6. android:orientation="horizontal"
  7. tools:context=".Fragment1">
  8. <!-- TODO: Update blank fragment layout -->
  9. <TextView
  10. android:layout_width="match_parent"
  11. android:layout_height="match_parent"
  12. android:textSize="45dp"
  13. android:text="这是微信界面"
  14. android:gravity="center"/>
  15. </FrameLayout>

设计界面展示:

4.tab布局(tab1.xml、tab2.xml、tab3.xml、tab4.xml):

添加文本信息做提示内容,四个布局均类似,此处仅列举一个。

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent">
  5. <TextView
  6. android:id="@+id/textView5"
  7. android:layout_width="wrap_content"
  8. android:layout_height="wrap_content"
  9. android:layout_weight="1"
  10. android:layout_gravity="center"
  11. android:gravity="center"
  12. android:text="这是聊天界面!"
  13. android:textSize="45dp"/>
  14. </LinearLayout>

tab1设计界面展示:

5.设计整合布局main_Activity.xml
  1. LinearLayout属性:LinearLayout的属性设置如下:

    • android:layout_width="match_parent"android:layout_height="match_parent":设置LinearLayout的宽度和高度都为与父容器匹配。
    • android:orientation="vertical":设置LinearLayout的子视图垂直排列。
  2. include元素:include元素用于将其他布局文件引入到当前布局中,实现布局的复用性。在这个示例中,有两个include元素:

    • 第一个include元素引用了名为"top"的布局文件,并将其作为LinearLayout的子视图。通过layout="@layout/top"指定引入的布局文件路径。
    • 第二个include元素引用了名为"bottun"的布局文件,并将其作为LinearLayout的子视图。通过layout="@layout/bottun"指定引入的布局文件路径。
  3. FrameLayout:LinearLayout中的第三个元素是一个FrameLayout,用于显示内容。FrameLayout的属性设置如下:

    • android:layout_width="match_parent"android:layout_height="0dp":将FrameLayout的宽度设置为与父容器匹配,并将高度设置为0dp。
    • android:layout_weight="1":设置FrameLayout在垂直方向上占据剩余空间。

该布局文件实现了一个垂直排列的界面,包含一个顶部布局、一个可变内容区域的FrameLayout和一个底部布局。顶部和底部布局通过include引入,而FrameLayout用于动态显示不同的内容。

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent"
  7. android:orientation="vertical"
  8. tools:context=".MainActivity">
  9. <include
  10. layout="@layout/top"
  11. android:layout_width="match_parent"
  12. android:layout_height="wrap_content" />
  13. <FrameLayout
  14. android:id="@+id/content"
  15. android:layout_width="match_parent"
  16. android:layout_height="0dp"
  17. android:layout_weight="1">
  18. </FrameLayout>
  19. <include
  20. layout="@layout/bottun" />
  21. </LinearLayout>

整合布局界面展示:

二、创建Java文件

创建4个Fragment文件:

当在Android应用中使用Fragment时,通常会在布局文件中包含一个用于容纳Fragment的FrameLayout,并在代码中将具体的Fragment添加到该容器中。

在每个Fragment中添加相应的tab:

Fragment1:

  1. @Override
  2. public View onCreateView(LayoutInflater inflater, ViewGroup container,
  3. Bundle savedInstanceState) {
  4. // Inflate the layout for this fragment
  5. return inflater.inflate(R.layout.tab1, container, false);
  6. }

onCreateView() ,通过 LayoutInflater 将 XML 布局文件 R.layout.tab1 实例化为一个 View 对象,并将其返回作为 Fragment 的视图。inflater.inflate() 方法的第三个参数是一个布尔值,表示是否将生成的 View 添加到 container 容器中。
 

MainActivity:实现导航栏和 Fragment布局 切换功能
 

1.在onCreate中定义四个 Fragment:Fragment1Fragment2Fragment3 和 Fragment4。用来实现tab.xml界面显示。

2.定义FragmentManager 类型的变量 fm,用于管理 Fragment 对象的生命周期和切换操作。

3.定义四个 LinearLayout 类型的变量:linearLayout1、linearLayout2、linearLayout3 和 linearLayout4,通过findViewById方法找到FrameLayout容器,实现button.xml界面显示。

  1. fragment1=new Fragment1();
  2. fragment2=new Fragment2();
  3. fragment3=new Fragment3();
  4. fragment4=new Fragment4();
  5. fm=getSupportFragmentManager();
  6. linearLayout1=findViewById(R.id.LinearLayout1);
  7. linearLayout2=findViewById(R.id.LinearLayout2);
  8. linearLayout3=findViewById(R.id.LinearLayout3);
  9. linearLayout4=findViewById(R.id.LinearLayout4);

4.定义initial() 方法用于初始化 Fragment。

  1. 获取FragmentManager实例:通过FragmentManager fm = this.getSupportFragmentManager();获取FragmentManager实例。

  2. 开启一个Fragment事务:通过fm.beginTransaction()开启一个Fragment事务,并获取到对应的FragmentTransaction对象。

  3. 添加Fragment到事务中:通过add方法向事务中添加对应的Fragment实例,这里将四个Fragment都添加到了同一个事务中,并且都添加到了名为content的布局容器中。

  4. 提交事务:通过调用commit方法提交事务,将添加操作生效。

  1. private void initial() {
  2. FragmentTransaction ft=fm.beginTransaction()
  3. .add(R.id.content,fragment1)
  4. .add(R.id.content,fragment2)
  5. .add(R.id.content,fragment3)
  6. .add(R.id.content,fragment4);
  7. ft.commit();
  8. }

5.定义Fragmenthide()用于隐藏Fragment,将所有的fragment界面都隐藏,避免重叠显示。

  1. private void fragmenthide() {
  2. FragmentTransaction ft=fm.beginTransaction()
  3. .hide(fragment1)
  4. .hide(fragment2)
  5. .hide(fragment3)
  6. .hide(fragment4);
  7. ft.commit();
  8. }

6.定义fragmentshow(),用于展示Fragment相应的tab.xml界面。

  1. private void fragmentshow(Fragment fragment) {
  2. FragmentTransaction transaction=fm.beginTransaction()
  3. .show(fragment);
  4. transaction.commit();
  5. }

7.定义onClick() 实现了 View.OnClickListener 接口,用于处理底部导航栏中选项的点击事件。

  1. public void onClick(View view)
  2. {
  3. fragmenthide();
  4. /*switch (view.getId())
  5. {
  6. case R.id.LinearLayout1 : fragmentshow(fragment1);
  7. case R.id.LinearLayout2 : fragmentshow(fragment2);
  8. case R.id.LinearLayout3 : fragmentshow(fragment3);
  9. case R.id.LinearLayout4 : fragmentshow(fragment4);
  10. default: break;
  11. }*/
  12. if (view.getId()==R.id.LinearLayout1)
  13. fragmentshow(fragment1);
  14. else if (view.getId()==R.id.LinearLayout2) {
  15. fragmentshow(fragment2);
  16. } else if (view.getId()==R.id.LinearLayout3) {
  17. fragmentshow(fragment3);
  18. } else if (view.getId()==R.id.LinearLayout4) {
  19. fragmentshow(fragment4);
  20. }
  21. }

整合代码:

  1. package com.example.myapplication;
  2. import androidx.appcompat.app.AppCompatActivity;
  3. import androidx.fragment.app.Fragment;
  4. import androidx.fragment.app.FragmentManager;
  5. import androidx.fragment.app.FragmentTransaction;
  6. import android.os.Bundle;
  7. import android.view.View;
  8. import android.widget.LinearLayout;
  9. public class MainActivity extends AppCompatActivity implements View.OnClickListener{
  10. Fragment fragment1;
  11. Fragment fragment2;
  12. Fragment fragment3;
  13. Fragment fragment4;
  14. FragmentManager fm;
  15. FragmentTransaction ft;
  16. LinearLayout linearLayout1,linearLayout2,linearLayout3,linearLayout4;
  17. @Override
  18. protected void onCreate(Bundle savedInstanceState) {
  19. super.onCreate(savedInstanceState);
  20. setContentView(R.layout.activity_main);
  21. fragment1=new Fragment1();
  22. fragment2=new Fragment2();
  23. fragment3=new Fragment3();
  24. fragment4=new Fragment4();
  25. fm=getSupportFragmentManager();
  26. linearLayout1=findViewById(R.id.LinearLayout1);
  27. linearLayout2=findViewById(R.id.LinearLayout2);
  28. linearLayout3=findViewById(R.id.LinearLayout3);
  29. linearLayout4=findViewById(R.id.LinearLayout4);
  30. initial();
  31. fragmenthide();
  32. fragmentshow(fragment1);
  33. linearLayout1.setOnClickListener(this);
  34. linearLayout2.setOnClickListener(this);
  35. linearLayout3.setOnClickListener(this);
  36. linearLayout4.setOnClickListener(this);
  37. }
  38. private void fragmenthide() {
  39. FragmentTransaction ft=fm.beginTransaction()
  40. .hide(fragment1)
  41. .hide(fragment2)
  42. .hide(fragment3)
  43. .hide(fragment4);
  44. ft.commit();
  45. }
  46. private void initial() {
  47. FragmentTransaction ft=fm.beginTransaction()
  48. .add(R.id.content,fragment1)
  49. .add(R.id.content,fragment2)
  50. .add(R.id.content,fragment3)
  51. .add(R.id.content,fragment4);
  52. ft.commit();
  53. }
  54. public void onClick(View view)
  55. {
  56. fragmenthide();
  57. /*switch (view.getId())
  58. {
  59. case R.id.LinearLayout1 : fragmentshow(fragment1);
  60. case R.id.LinearLayout2 : fragmentshow(fragment2);
  61. case R.id.LinearLayout3 : fragmentshow(fragment3);
  62. case R.id.LinearLayout4 : fragmentshow(fragment4);
  63. default: break;
  64. }*/
  65. if (view.getId()==R.id.LinearLayout1)
  66. fragmentshow(fragment1);
  67. else if (view.getId()==R.id.LinearLayout2) {
  68. fragmentshow(fragment2);
  69. } else if (view.getId()==R.id.LinearLayout3) {
  70. fragmentshow(fragment3);
  71. } else if (view.getId()==R.id.LinearLayout4) {
  72. fragmentshow(fragment4);
  73. }
  74. }
  75. private void fragmentshow(Fragment fragment) {
  76. FragmentTransaction transaction=fm.beginTransaction()
  77. .show(fragment);
  78. transaction.commit();
  79. }
  80. }

完整界面展示:

三、实现列表效果

1.修改tab2.xml(联系人)界面

修改为recycleview布局

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent">
  5. <androidx.recyclerview.widget.RecyclerView
  6. android:id="@+id/recycleview"
  7. android:layout_width="match_parent"
  8. android:layout_height="match_parent"
  9. android:layout_gravity="center"/>
  10. </LinearLayout>
2.新建item.xml,设计列表布局格式,做为内容容器填充到recyclerview中去
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="wrap_content">
  5. <TextView
  6. android:id="@+id/textView1"
  7. android:layout_width="wrap_content"
  8. android:layout_height="wrap_content"
  9. android:layout_weight="1"
  10. android:text="TextView"
  11. android:textColor="@color/black"
  12. android:textSize="35sp" />
  13. </LinearLayout>
3.添加Myadapter.java,用于将数据绑定到 RecyclerView 中进行显示。
  1. package com.example.myapplication;
  2. import android.content.Context;
  3. import android.view.LayoutInflater;
  4. import android.view.View;
  5. import android.view.ViewGroup;
  6. import android.widget.TextView;
  7. import androidx.annotation.NonNull;
  8. import androidx.recyclerview.widget.RecyclerView;
  9. import java.util.List;
  10. public class Myadapter extends RecyclerView.Adapter<Myadapter.Myholder> {
  11. Context context1;
  12. List<String> list1;
  13. public Myadapter(Context context,List list) {
  14. context1=context;
  15. list1=list;
  16. }
  17. @NonNull
  18. @Override
  19. public Myholder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
  20. View view = LayoutInflater.from(context1).inflate(R.layout.item,parent,false);
  21. Myholder holder = new Myholder(view);
  22. return holder;
  23. }
  24. @Override
  25. public void onBindViewHolder(@NonNull Myholder holder, int position) {
  26. holder.textView.setText(list1.get(position));
  27. }
  28. @Override
  29. public int getItemCount() {
  30. return list1.size();
  31. }
  32. public class Myholder extends RecyclerView.ViewHolder{
  33. TextView textView;
  34. public Myholder(@NonNull View itemView) {
  35. super(itemView);
  36. textView=itemView.findViewById(R.id.textView1);
  37. }
  38. }
  39. }
4.对Fragment2.java(联系人界面)进行修改
  1. 创建视图:通过LayoutInflater的inflate方法将布局文件tab2(R.layout.tab2)转换为View对象,并传入了container(父容器)和false(是否将返回的View添加到父容器中)。

  2. 初始化RecyclerView:获取到视图中的RecyclerView控件,并将其与成员变量recyclerView关联。

  3. 创建数据列表:初始化了一个空的ArrayList,并使用循环向其中添加了9个字符串元素。

  4. 创建适配器并设置给RecyclerView:实例化了MyAdapter适配器,并将上下文和数据列表传入构造函数。然后将适配器设置给RecyclerView。

  5. 设置RecyclerView布局管理器:创建LinearLayoutManager布局管理器的实例manager,并将其方向设置为垂直。最后将布局管理器设置给RecyclerView。

  1. package com.example.myapplication;
  2. import android.annotation.SuppressLint;
  3. import android.content.Context;
  4. import android.os.Bundle;
  5. import androidx.fragment.app.Fragment;
  6. import androidx.recyclerview.widget.LinearLayoutManager;
  7. import androidx.recyclerview.widget.RecyclerView;
  8. import android.view.LayoutInflater;
  9. import android.view.View;
  10. import android.view.ViewGroup;
  11. import java.util.ArrayList;
  12. import java.util.List;
  13. public class Fragment2 extends Fragment{ //继承自Fragment类的Fragment3类。在该类中,重写了onCreateView方法用于创建视图
  14. private RecyclerView recyclerView;
  15. private List<String> list= new ArrayList<>();
  16. private Context context;
  17. private Myadapter myadapter;
  18. @SuppressLint("MissingInflatedId")
  19. @Override
  20. public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState){
  21. View view=inflater.inflate(R.layout.tab2,container,false);
  22. context=view.getContext();
  23. recyclerView=view.findViewById(R.id.recycleview);
  24. list=new ArrayList();
  25. for (int i=0; i<9;i++)
  26. {
  27. list.add("这是第"+i+"行数据");
  28. }
  29. myadapter = new Myadapter(context,list);
  30. recyclerView.setAdapter(myadapter);
  31. LinearLayoutManager manager=new LinearLayoutManager(context);
  32. manager.setOrientation(LinearLayoutManager.VERTICAL);
  33. recyclerView.setLayoutManager(manager);
  34. return view;
  35. }
  36. }

界面展示:

四、总结

        1.高版本的AS中,默认情况下资源 id 将是非final 的,使用它们在 switch case 语句中可能会导致编译错误。使用 if-else 语句更具灵活性,并且通常不会受到工具链和编译器的限制。

        2.特别注意界面设计的id,不要重名。

        3.巧用快速修复,大部分问题都能被快速修复。

五、仓库链接

github-ASweixin

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

闽ICP备14008679号