Recyclerview 单行 多行 listView GridView

来源:互联网 发布:运动keep是什么软件 编辑:程序博客网 时间:2024/06/05 12:42

1.Activtiy{

public class FirstActivity extends Activity {


    private RecyclerView recyclerView;
    private List<String> list;
    private SimpleRecycleAdapter simpleRecycleAdapter;


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


//获取控件
        recyclerView = findViewById(R.id.recycler_view);


        //数据
        list = new ArrayList<>();
        for (int i=0; i<1000;i++){
            list.add("这是条目"+i);
        }


        //5.必须要指定布局管理器
        recyclerView.setLayoutManager(new LinearLayoutManager(FirstActivity.this,LinearLayoutManager.VERTICAL,false));


        //2.设置适配器展示
        simpleRecycleAdapter = new SimpleRecycleAdapter(FirstActivity.this, list);
        recyclerView.setAdapter(simpleRecycleAdapter);




    }
//点击事件
//listView
    public void listView(View view) {
        recyclerView.setLayoutManager(new LinearLayoutManager(FirstActivity.this,LinearLayoutManager.VERTICAL,false));
        simpleRecycleAdapter.notifyDataSetChanged();
    }
//gridView
    public void gridView(View view) {
        recyclerView.setLayoutManager(new GridLayoutManager(FirstActivity.this,3));
        simpleRecycleAdapter.notifyDataSetChanged();
    }
//单行
    public void hengXinag(View view) {
        recyclerView.setLayoutManager(new LinearLayoutManager(FirstActivity.this,LinearLayoutManager.HORIZONTAL,false));
        simpleRecycleAdapter.notifyDataSetChanged();
    }
//多行
    public void hengxiangDuoHang(View view) {
        recyclerView.setLayoutManager(new GridLayoutManager(FirstActivity.this,3, OrientationHelper.HORIZONTAL,false));
        simpleRecycleAdapter.notifyDataSetChanged();
    }

}

2.  主页面布局

<LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">


        <Button
            android:onClick="listView"
            android:text="ListView"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content" />


        <Button
            android:onClick="gridView"
            android:text="GridView"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content" />


        <Button
            android:onClick="hengXinag"
            android:text="单行"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content" />


        <Button
            android:onClick="hengxiangDuoHang"
            android:text="多行"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content" />
    </LinearLayout>


    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">


    </android.support.v7.widget.RecyclerView>


3.Adapter 配置

public class SimpleRecycleAdapter extends RecyclerView.Adapter<SimpleHolder> {
    private List<String> list;
    private Context context;


    public SimpleRecycleAdapter(Context context, List<String> list) {
        this.context = context;
        this.list = list;
    }


    //....回想listView的优化,,,1.创建viewHolder....2.与条目的视图进行绑定的
    //onCreateViewHolder...创建一个ViewHolder....根据条目的视图创建自己的holder对象
    @Override
    public SimpleHolder onCreateViewHolder(ViewGroup parent, int viewType) {


        //inflater...条目的视图
        View view = LayoutInflater.from(context).inflate(android.R.layout.simple_list_item_1, parent, false);


        SimpleHolder holder = new SimpleHolder(view);


        return holder;
    }


    /**
     * onBindViewHolder 绑定上viewHolder之后的操作...主要是赋值(textView,button,checkBox...)的操作
     * @param holder
     * @param position
     */
    @Override
    public void onBindViewHolder(SimpleHolder holder, int position) {


        holder.textView.setText(list.get(position));


    }


    /**
     * 条目的数量
     * @return
     */
    @Override
    public int getItemCount() {
        return list.size();
    }
}

4.Horder配置

public class SimpleHolder extends RecyclerView.ViewHolder {


    public TextView textView;


    public SimpleHolder(View itemView) {
        super(itemView);


        textView = itemView.findViewById(android.R.id.text1);
    }
}

原创粉丝点击