Android ListView仿手机qq主页面

Android ListView仿手机qq主页面,第1张

概述ListView的使用仿照个人qq主页面原图效果图首先删除原来的工具栏在values文件夹下的styles文件中将style标签中的parent改为NoActionBarparent="Theme.AppCompat.Light.NoActionBar"在activity_main.xml中创建一个Toolbar作为自己创建的工具栏,搜索框是抠图作为一个im ListVIEw的使用

仿照个人qq主页面

原图

效果图

首先删除原来的工具栏
在values文件夹下的styles文件中将style标签中的parent改为NoActionbar
parent="theme.AppCompat.light.NoActionbar"在activity_main.xml中创建一个Toolbar作为自己创建的工具栏,搜索框是抠图作为一个imagebutton(原手机qq这个搜索框个人认为就是一个button)

<androIDx.appcompat.Widget.Toolbar            androID:ID="@+ID/toolbar"            androID:layout_wIDth="match_parent"            androID:layout_height="?attr/actionbarSize"            androID:background="@color/blue"            app:title="看客"            app:TitleTextcolor="@color/write"            androID:paddingStart="15dp"            androID:paddingleft="15dp"            app:navigationIcon="@drawable/yonc"            tools:ignore="RtlSymmetry"/>    <Imagebutton            androID:ID="@+ID/ib_search"            androID:layout_wIDth="408sp"            androID:layout_height="55sp"            androID:src="@drawable/search_dark"    />
ListVIEw部分在xml布局文件中创建一个ListVIEw
androID:divIDer="@color/transparent"可以设置每一个item的下划线为透明色即无下划线
<ListVIEw            androID:ID="@+ID/lv"            androID:layout_wIDth="match_parent"            androID:layout_height="match_parent"/>
为ListVIEw的每一个item创建一个布局
这里仿照qq主页面的item创建一个布局(即一个个头像加一个昵称)
其中的宽高可以根据图片的大小以及效果微调

<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"              xmlns:tools="http://schemas.androID.com/tools" androID:orIEntation="horizontal"              androID:layout_wIDth="match_parent"              androID:layout_height="55sp" tools:ignore="UseCompoundDrawables">    <ImageVIEw            androID:layout_gravity="center_vertical"            androID:ID="@+ID/icon_group"            androID:paddingStart="15dp"            androID:paddingleft="15dp"            androID:layout_wIDth="wrap_content"            androID:layout_height="wrap_content"            tools:ignore="RtlSymmetry"/>    <TextVIEw            androID:paddingStart="15dp"            androID:paddingleft="15dp"            androID:ID="@+ID/name_group"            androID:layout_wIDth="wrap_content"            androID:textSize="20sp"            androID:layout_height="wrap_content" tools:ignore="RtlSymmetry"/></linearLayout>
为ListVIEw获取数据
我这里是创建了一个javaBean名为FrIEndsBean,有name和icon属性,get和set方法没有贴出来
public class FrIEndsBean {    private String name;    private int icon;    }

并且手动写入上述数据并且将相应的对象写入frIEnds集合中。

创建一个适配器类继承BaseAdapter
(详看注释)
package com.example.myListvIEw;import androID.content.Context;import androID.vIEw.LayoutInflater;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 MyAdapter extends BaseAdapter {    private List<FrIEndsBean> frIEnds;    private Context context;    //构造方法    public MyAdapter(List<FrIEndsBean> frIEnds, Context context) {        this.frIEnds = frIEnds;        this.context = context;    }    //item的数量,定义为集合的长度    @OverrIDe    public int getCount() {        return frIEnds.size();    }    @OverrIDe    public Object getItem(int position) {        return null;    }    @OverrIDe    public long getItemID(int position) {        return position;    }    //将每一个item条目进行设置并且返回一个VIEw    @OverrIDe    public VIEw getVIEw(int position, VIEw convertVIEw, VIEwGroup parent) {        //拿到一个布局        if (convertVIEw==null){            convertVIEw = LayoutInflater.from(context)                    .inflate(R.layout.List_item,parent,false);        }        //通过convertVIEw对象拿到创建的布局中的子控件并且为之写入数据        TextVIEw textVIEw = convertVIEw.findVIEwByID(R.ID.name_group);        textVIEw.setText(frIEnds.get(position).getname());        ImageVIEw imageVIEw = convertVIEw.findVIEwByID(R.ID.icon_group);        imageVIEw.setimageResource(frIEnds.get(position).getIcon());        return convertVIEw;    }}
在MainActivity中调用
ListVIEw ListVIEw = (ListVIEw)findVIEwByID(R.ID.lv);ListVIEw.setAdapter(new MyAdapter(frIEnds,this));
总结

以上是内存溢出为你收集整理的Android ListView仿手机qq主页面全部内容,希望文章能够帮你解决Android ListView仿手机qq主页面所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1012218.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存