Android studio计划app根本页面

打印 上一主题 下一主题

主题 962|帖子 962|积分 2886

一、作业目标

app根本页面包罗以下三个内容:首页(3-4个tab页面),列表页面,详情页面,从首页可以点击进入列表页面,点击列表的某一行可以进入详情页面
二、工具

Android studio
三、计划思绪

微信页面包含聊天,联系人,位置,设置四个tab界面,主界面总体分为上中下三个部分,使用recycleview在联系人界面实现列表结果,用来显示联系人详细信息
详细文件为tab1,2,3,4;fragment1,2,3,4对应;上中下结果由top tab bottom实现;
最后由main.xml整合
详细文件展示:


代码如下:

top.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="wrap_content">
  5.     <TextView
  6.         android:id="@+id/textView"
  7.         android:layout_width="wrap_content"
  8.         android:layout_height="wrap_content"
  9.         android:layout_weight="1"
  10.         android:background="@color/black"
  11.         android:gravity="center"
  12.         android:text="微信"
  13.         android:textColor="@color/white"
  14.         android:textSize="40sp" />
  15. </LinearLayout>
复制代码
item.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="wrap_content">
  5.     <TextView
  6.         android:id="@+id/textView6"
  7.         android:layout_width="match_parent"
  8.         android:layout_height="match_parent"
  9.         android:layout_weight="1"
  10.         android:gravity="center"
  11.         android:text="TextView"
  12.         android:textColor="@color/black"
  13.         android:textSize="35sp" />
  14. </LinearLayout>
复制代码
bottom.xml
  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.     android:layout_width="match_parent"
  5.     android:layout_height="wrap_content"
  6.     android:background="@color/black"
  7.     android:orientation="horizontal">
  8.     <LinearLayout
  9.         android:id="@+id/LinearLayout1"
  10.         android:layout_width="wrap_content"
  11.         android:layout_height="wrap_content"
  12.         android:layout_weight="1"
  13.         android:orientation="vertical">
  14.         <ImageView
  15.             android:id="@+id/imageView11"
  16.             android:layout_width="115dp"
  17.             android:layout_height="109dp"
  18.             android:layout_weight="1"
  19.             app:srcCompat="@android:drawable/ic_menu_always_landscape_portrait" />
  20.         <TextView
  21.             android:id="@+id/textView11"
  22.             android:layout_width="match_parent"
  23.             android:layout_height="wrap_content"
  24.             android:gravity="center"
  25.             android:text="聊天"
  26.             android:textColor="@color/white"
  27.             android:textSize="30sp" />
  28.     </LinearLayout>
  29.     <LinearLayout
  30.         android:id="@+id/LinearLayout2"
  31.         android:layout_width="wrap_content"
  32.         android:layout_height="wrap_content"
  33.         android:layout_weight="1"
  34.         android:orientation="vertical">
  35.         <ImageView
  36.             android:id="@+id/imageView22"
  37.             android:layout_width="115dp"
  38.             android:layout_height="109dp"
  39.             android:layout_weight="1"
  40.             app:srcCompat="@android:drawable/ic_menu_call" />
  41.         <TextView
  42.             android:id="@+id/textView22"
  43.             android:layout_width="match_parent"
  44.             android:layout_height="wrap_content"
  45.             android:gravity="center"
  46.             android:text="联系人"
  47.             android:textColor="@color/white"
  48.             android:textSize="30sp" />
  49.     </LinearLayout>
  50.     <LinearLayout
  51.         android:id="@+id/LinearLayout3"
  52.         android:layout_width="wrap_content"
  53.         android:layout_height="wrap_content"
  54.         android:layout_weight="1"
  55.         android:orientation="vertical">
  56.         <ImageView
  57.             android:id="@+id/imageView33"
  58.             android:layout_width="match_parent"
  59.             android:layout_height="109dp"
  60.             android:layout_weight="1"
  61.             app:srcCompat="@android:drawable/ic_menu_compass" />
  62.         <TextView
  63.             android:id="@+id/textView33"
  64.             android:layout_width="115dp"
  65.             android:layout_height="wrap_content"
  66.             android:gravity="center"
  67.             android:text="位置"
  68.             android:textColor="@color/white"
  69.             android:textSize="30sp" />
  70.     </LinearLayout>
  71.     <LinearLayout
  72.         android:id="@+id/LinearLayout4"
  73.         android:layout_width="109dp"
  74.         android:layout_height="wrap_content"
  75.         android:layout_weight="1"
  76.         android:orientation="vertical">
  77.         <ImageView
  78.             android:id="@+id/imageView44"
  79.             android:layout_width="match_parent"
  80.             android:layout_height="109dp"
  81.             android:layout_weight="1"
  82.             app:srcCompat="@android:drawable/ic_menu_manage" />
  83.         <TextView
  84.             android:id="@+id/textView44"
  85.             android:layout_width="match_parent"
  86.             android:layout_height="wrap_content"
  87.             android:gravity="center"
  88.             android:text="设置"
  89.             android:textColor="@color/white"
  90.             android:textSize="30sp" />
  91.     </LinearLayout>
  92. </LinearLayout>
复制代码
main.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.     android:orientation="vertical">
  6.     <include layout="@layout/top" />
  7.     <FrameLayout
  8.         android:id="@+id/content1"
  9.         android:layout_width="match_parent"
  10.         android:layout_height="wrap_content"
  11.         android:layout_weight="1">
  12.     </FrameLayout>
  13.     <include
  14.         android:id="@+id/content"
  15.         layout="@layout/bottom" />
  16. </LinearLayout>
复制代码
tab页面代码类似
展示tab1例子以及加入了recycleview的tab2(如果详情页加到tab1,3,4中同理)
tab1
  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/textView2"
  7.         android:layout_width="wrap_content"
  8.         android:layout_height="wrap_content"
  9.         android:layout_gravity="center"
  10.         android:layout_weight="1"
  11.         android:gravity="center"
  12.         android:text="这是聊天界面"
  13.         android:textSize="50sp" />
  14. </LinearLayout>
复制代码
tab2
  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="388dp"
  8.         android:layout_height="701dp"
  9.         android:layout_marginStart="8dp"
  10.         android:layout_marginTop="8dp"
  11.         />
  12. </LinearLayout>
复制代码
fragment页面类似
展示fragment1例子以及加入了recycleview的fragment2(如果详情页加到fragment1,3,4中同理)
fragment1
  1. package com.example.myapplication;
  2. import android.os.Bundle;
  3. import android.view.LayoutInflater;
  4. import android.view.View;
  5. import android.view.ViewGroup;
  6. import androidx.fragment.app.Fragment;
  7. import com.example.myapplication.R;
  8. public class Fragment1 extends Fragment {
  9.     @Override
  10.     public View onCreateView(LayoutInflater inflater, ViewGroup container,
  11.                              Bundle savedInstanceState) {
  12.         // Inflate the layout for this fragment
  13.         return inflater.inflate(R.layout.tab1, container, false);
  14.     }
  15. }
复制代码
fragment2
  1. package com.example.myapplication;
  2. import android.annotation.SuppressLint;
  3. import android.content.Context;
  4. import android.os.Bundle;
  5. import android.view.LayoutInflater;
  6. import android.view.View;
  7. import android.view.ViewGroup;
  8. import androidx.fragment.app.Fragment;
  9. import androidx.recyclerview.widget.LinearLayoutManager;
  10. import androidx.recyclerview.widget.RecyclerView;
  11. import java.util.*;
  12. public class Fragment2 extends Fragment {
  13.     Context context;
  14.     List list;
  15.     RecyclerView recyclerView;
  16.     Myadapter myadapter;
  17.     @SuppressLint("MissingInflatedId")
  18.     @Override
  19.     public View onCreateView(LayoutInflater inflater, ViewGroup container,
  20.                              Bundle savedInstanceState) {
  21.         // Inflate the layout for this fragment
  22.         View view = inflater.inflate(R.layout.tab2, container, false);
  23.         context = view.getContext();
  24.         recyclerView = view.findViewById(R.id.recycleView);
  25.         list = new ArrayList();
  26.         for(int i=0;i<9;i++){
  27.             list.add("这是第"+i+"行数据");}
  28.         myadapter = new Myadapter(context, list);
  29.         recyclerView.setAdapter(myadapter);
  30.         LinearLayoutManager manager = new LinearLayoutManager(context);
  31.         manager.setOrientation(LinearLayoutManager.VERTICAL);
  32.         recyclerView.setLayoutManager(manager);
  33.         return view;
  34.     }
  35. }
复制代码
myadapter类
  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 com.example.myapplication.R;
  10. import java.util.List;
  11. import java.util.zip.Inflater;
  12. public class Myadapter extends RecyclerView.Adapter<Myadapter.Myholder> {
  13.     Context context1;
  14.     List<String> list1;
  15.     public Myadapter(Context context, List list){
  16.         context1=context;
  17.         list1=list;
  18.     }
  19.     @NonNull
  20.     @Override
  21.     public Myholder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
  22.         View view=LayoutInflater.from(context1).inflate(R.layout.item,parent,false);
  23.         Myholder myholder=new Myholder(view);
  24.         return myholder;
  25.     }
  26.     @Override
  27.     public void onBindViewHolder(@NonNull Myholder holder, int position) {
  28.         holder.textView.setText(list1.get(position));
  29.     }
  30.     @Override
  31.     public int getItemCount() {
  32.         return list1.size();
  33.     }
  34.     protected class Myholder extends RecyclerView.ViewHolder {
  35.         TextView textView;
  36.         public Myholder(@NonNull View itemView) {
  37.             super(itemView);
  38.             textView=itemView.findViewById(R.id.textView6);
  39.         }
  40.     }
  41. }
复制代码
recycleviewactivity
  1. package com.example.myapplication;
  2. import android.os.Bundle;
  3. import androidx.activity.EdgeToEdge;
  4. import androidx.appcompat.app.AppCompatActivity;
  5. import androidx.core.graphics.Insets;
  6. import androidx.core.view.ViewCompat;
  7. import androidx.core.view.WindowInsetsCompat;
  8. public class recycleviewActivity extends AppCompatActivity {
  9.     @Override
  10.     protected void onCreate(Bundle savedInstanceState) {
  11.         super.onCreate(savedInstanceState);
  12.         EdgeToEdge.enable(this);
  13.         setContentView(R.layout.activity_recycleview);
  14.         ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
  15.             Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
  16.             v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
  17.             return insets;
  18.         });
  19.     }
  20. }
复制代码
结果展示:



github仓库代码地址
ygy-123/android_firstapp

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

不到断气不罢休

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表