RecyclerView

首先在module的build.gradle中导入资源

dependencies{
***

***

implementation 'androidx.recyclerview:recyclerview:1.1.0'
}

要与用的sdk相同或者就是这样1.1.0的

在java代码中

package com.example.mytest.fragment;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;

import com.example.mytest.R;
import com.example.mytest.adapter.MainHeaderADAdapter;
import com.example.mytest.adapter.MainMenuAdapter;
import com.example.mytest.util.DataUtil;

public class MainFragment extends Fragment {

    //menu菜单图标
    protected ViewPager mVPagerHeaderAD;//广告头部
    protected int []icons={R.drawable.header_pic_ad1,R.drawable.header_pic_ad2,R.drawable.header_pic_ad1};
    protected int []menuIons={R.drawable.menu_airport,R.drawable.menu_car,
            R.drawable.menu_course,R.drawable.menu_hatol,R.drawable.menu_nearby,
            R.drawable.huoche,R.drawable.menu_ticket,R.drawable.menu_train};
    protected int []secondMenus={R.drawable.menu_second_airport,
            R.drawable.menu_second_play,R.drawable.menu_second_quan};

    String []menus;
    String [] secondStrMenus;
    protected RecyclerView mRecyclerViewMenu;//主菜单
    protected RecyclerView mRecyclerSecondViewMenu;//二级主菜单

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        return inflater.inflate(R.layout.fragment_main,null);
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        menus=this.getActivity().getResources().getStringArray(R.array.main_menu);
        secondStrMenus=this.getActivity().getResources().getStringArray(R.array.main_second_menu);//获取字符串数组
        mVPagerHeaderAD=(ViewPager) getView().findViewById(R.id.vpager_main_header_ad);
        mRecyclerViewMenu=(RecyclerView) getView().findViewById(R.id.recycleview_main_menu);
        mRecyclerSecondViewMenu=(RecyclerView)getActivity().findViewById(R.id.recycleview_main_second_menu);// 绑定区域
        MainHeaderADAdapter adapter=new MainHeaderADAdapter(getActivity(), DataUtil.getHeaderAddInfo(getActivity(),icons));
        mVPagerHeaderAD.setAdapter(adapter);
        //菜单
        //布局样式
        mRecyclerViewMenu.setLayoutManager(new GridLayoutManager(getActivity(),4));
        MainMenuAdapter mainMenuAdapter=new MainMenuAdapter(getActivity(),DataUtil.getMainMenu(menuIons,menus));
        mRecyclerViewMenu.setAdapter(mainMenuAdapter);
        //二级布局
        mRecyclerSecondViewMenu.setLayoutManager(new GridLayoutManager(getActivity(),3));
        MainMenuAdapter mainSecondMenuAdapter=new MainMenuAdapter(getActivity(),DataUtil.getMainMenu(secondMenus,secondStrMenus));
        mRecyclerSecondViewMenu.setAdapter(mainSecondMenuAdapter);

    }
}

这里用到的字符传输组是在写在布局文件中的

<resources>
    <string name="app_name">MyTest</string>
    <string-array name="main_menu">
        <item>飞机票</item>
        <item>住酒店</item>
        <item>去旅游</item>
        <item>周边游</item>
        <item>买门票</item>
        <item>火车票</item>
        <item>汽车票</item>
        <item>领里程</item>
    </string-array>
    <string-array name="main_second_menu">
        <item>国际机票</item>
        <item>签证服务</item>
        <item>飞机接送</item>

    </string-array>
</resources>

总结 

先有两个存放了文字和图片id的数组

将recyclerview的对象绑定id

mRecyclerSecondViewMenu=// 绑定区域(RecyclerView)getActivity().findViewById(R.id.recycleview_main_second_menu);
//设置管理器,(参1容器就是当前类,参2列数)
mRecyclerSecondViewMenu.setLayoutManager(new GridLayoutManager(getActivity(),3));
//适配器(参1容器,参2调用方法得到一个集合,DataUtil.getMainMenu中处理图片与文字放到List<Menu>中Menu很简单只有两个变量为图片id与String文字)
MainMenuAdapter mainSecondMenuAdapter=new MainMenuAdapter(getActivity(),DataUtil.getMainMenu(secondMenus,secondStrMenus));
//将适配器放入recyclerView对象中
mRecyclerSecondViewMenu.setAdapter(mainSecondMenuAdapter);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值