AndroidFragment仿写美团外卖界面

原创
小哥 2年前 (2022-12-19) 阅读数 46 #大杂烩

使用fragment为了实现页面的流畅切换,各大程序的界面为卓远做出了贡献!

activity_main.xml:主界面设置有顶部菜单、商家、评论和好友列表按钮控件,以及左侧(推荐和必需)右侧列(显示菜肴内容)fragment






    

    

    

    


    
        
        

    

FoodBean:Java该文件实现了菜肴基本信息的实例化(名称、内容、价格、评论数量等)

package com.example.menu;

import java.io.Serializable;

public class FoodBean implements Serializable {
    private static final long serialVersionUID=1L;
    private String name;
    private String sales;
    private String price;
    private int img;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSales() {
        return sales;
    }

    public void setSales(String sales) {
        this.sales = sales;
    }

    public String getPrice() {
        return price;
    }

    public void setPrice(String price) {
        this.price = price;
    }

    public int getImg() {
        return img;
    }

    public void setImg(int img) {
        this.img = img;
    }
}

MainActivity:java文件、主页的数据内容和控件的单击功能在一行中实现。

package com.example.menu;

import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentTransaction;

import android.app.Fragment;
import android.app.FragmentManager;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends AppCompatActivity {
private FragmentManager fragmentManager;
private FragmentTransaction fragmentTransaction;
private Fragment leftFragment;
private RightFragment rightFragment;
private TextView tv_recommed,tv_must_buy;
private TextView btn;
private String[]names1={"爆款*肥牛、鱼、豆腐、骨和肉,配三道肉菜和五种蔬菜,一份米饭","豪华双人套餐","【热门】双人套餐(含两份米饭)","家乡菜炒花甲","家乡美食八仙过海","家乡菜肴迷魂汤","家常菜小丸子","家乡辣子鸡","家乡辣龙虾"};
private String[]sales1={"月售520 好评度80%","月售520 好评度80%","月售520 好评度80%","月售520 好评度80%","月售520 好评度80%","月售520 好评度80%","月售520 好评度80%","月售520 好评度80%","月售520 好评度80%"};
private String[]prices1={"$23","$41","$32","$23","$41","$32","$23","$41","$32"};
private int []imgs1={R.drawable.recom_one,R.drawable.recom_two,R.drawable.recom_three,R.drawable.recom_four,R.drawable.recom_five,R.drawable.recom_six,R.drawable.recom_seven,R.drawable.recom_eight,R.drawable.recom_nine};

    private String[]names2={"素食一人套餐","双人经典套餐","三重经典套餐"};
    private String[]sales2={"月售520 好评度80%","月售520 好评度80%","月售520 好评度80%"};
    private String[]prices2={"$23","$41","$32"};
    private int []imgs2={R.drawable.must_buy_one,R.drawable.must_buy_two,R.drawable.must_buy_three};

    private Map>map;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        setData();
        init();
        clickEvent();
    }
    private void init(){//在主页的左侧fragment接口控制分配

         fragmentManager = getFragmentManager();

        leftFragment=fragmentManager.findFragmentById(R.id.left);
       tv_recommed=findViewById(R.id.tv_recommend);

        tv_must_buy=findViewById(R.id.tv_must_buy);

    }
    private void setData(){//为数据分配一个值,并将其全部放入相应的数据集中。
        map=new HashMap<>();
        Listlist1=new  ArrayList<>();
        Listlist2=new ArrayList<>();
        for(int i=0;i list){

        rightFragment=new RightFragment().getInstance(list);//实例fragment

        fragmentManager=getFragmentManager();//获取FragmentManager

       fragmentTransaction=getSupportFragmentManager().beginTransaction();//开启事务

        fragmentTransaction.replace(R.id.right,rightFragment);//添加一个Fragment

         fragmentTransaction.commit();//提交事务

    }

    }

fragment_left.xml:布局文件、建议和必须在主页左侧购买fragment界面布局




    
    
    

fragment_right.xml




    


list_item.xml:和fragment-right.xml共同实现数据的总体布局(菜肴布局的内容)





    
    
    
    

Right Adapter:用于菜肴数据的适配器。

package com.example.menu;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import java.util.List;

public class RightAdapter extends BaseAdapter {
    private Context mContext;
    private Listlist;
    public RightAdapter(Context context , Listlist){
        this.mContext=context;
        this.list=list;
    }
    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        return list.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
      ViewHolder holder=null;
      if(convertView==null){
          convertView=View.inflate(mContext,R.layout.list_item,null);
          holder= new ViewHolder();
          holder.tv_name=convertView.findViewById(R.id.tv_name);
          holder.tv_sale=convertView.findViewById(R.id.tv_sale);
          holder.tv_price=convertView.findViewById(R.id.tv_price);
          holder.iv_img=convertView.findViewById(R.id.iv_img);
          convertView.setTag(holder);
      }else {
          holder=(ViewHolder) convertView.getTag();
      }
      FoodBean bean=list.get(position);
      holder.tv_name.setText(bean.getName());
        holder.tv_sale.setText(bean.getSales());
        holder.tv_price.setText(bean.getPrice());
        holder.iv_img.setBackgroundResource(bean.getImg());
      return convertView;
    }
    class ViewHolder{
        TextView tv_name,tv_sale,tv_price;
        ImageView iv_img;
    }
}

截图:

如果代码中有任何缺陷,我仍然希望您保持优雅和正确。我会虚心接受并稍后纠正。让我们一起学习,共同进步!

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除

热门