安卓常用控件ListView

文章目录

  ListView是一个列表样式的 ViewGroup,将若干 item 按行排列。它是一个很基本的控件也是 Android 中最重要的控件之一。它可以实现多个 View 的垂直排列并支持滚动显示效果。

ListView的常用属性

常用属性 描述
divider 设置item之间的分割线,可以设置成颜色,也可以设置成drawable资源。
dividerHeight 设置分隔线高度。
footerDividersEnabled 是否在表尾前绘制一个分隔线,默认为true。
headerDividerEnabled 是否在表首前绘制一个分隔线,默认为true。
scrollbars 设置滚动条样式,horizontal:横向;vertical:纵向;none:隐藏滚动条。
cacheColorHint 设置拖动的背景色。

ListView的常用API

常用API 描述
addHeaderView(View v) 添加一个headView,会固定显示在表的第一个元素之前。
addFooterView(View v) 添加一个footerView,会固定显示在表的最后一个元素之前。
addHeaderView(View v, Object data, boolean isSelectable) 添加headView,第二个参数表示与headView绑定的数据对象,第三个参数表示当前这条item是否可选中。
addFooterView(View v, Object data, boolean isSelectable) 添加footerView,第二个参数表示与footerView绑定的数据对象,第三个参数表示当前这条item是否可选中。

ListView的简单使用

  新建一个项目,修改activity_main.xml中的代码。

xml 复制代码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:divider="#0bcb68"
        android:dividerHeight="2dp"/>
</LinearLayout>

  新建一个布局文件作为表头,取名view_header.xml。

xml 复制代码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:textSize="18sp"
        android:text="表头"
        android:gravity="center"
        android:background="#43BBEB"
        android:textColor="#FFFFFF"/>
</LinearLayout>

  最后编写MainActivty.java文件。

java 复制代码
public class MainActivity extends AppCompatActivity {
    private String[] data = {"Apple", "Banana", "Orange", "Watermelon",
            "Pear", "Grape", "Pineapple", "Strawberry", "Cherry", "Mango",
            "Apple", "Banana", "Orange", "Watermelon", "Pear", "Grape",
            "Pineapple", "Strawberry", "Cherry", "Mango"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final LayoutInflater inflater = LayoutInflater.from(this);
        View headView = inflater.inflate(R.layout.view_header, null, false);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, data);
        ListView listView = (ListView) findViewById(R.id.listView);
        listView.setAdapter(adapter);
        listView.addHeaderView(headView);
    }
}
相关推荐
Coffeeee6 分钟前
搞Android的怎么可能搞不懂Context Engineering?
android·人工智能·ai编程
Carson带你学Android12 分钟前
Gemini Nano 开发实战:让你的App轻松拥有端侧 AI 功能
android·ai编程
再玩一会儿看代码13 分钟前
JUnit 测试框架详解:从实际开发、业务测试到 Java 面试高频问题
java·经验分享·笔记·junit·面试
巴巴媛66634 分钟前
STM32学习笔记【36.CAN收发实验】
笔记·stm32·学习
yxlalm38 分钟前
2.java秒杀项目第二课-后端登录功能
java·开发语言
光学补偿1 小时前
文件IO的前世今生
开发语言·学习·面试·java-ee
xian_wwq1 小时前
【学习笔记】分布式推理:TP / PP / EP / CP 并行策略详解(20/35)
笔记·分布式·学习·ai
凉、介1 小时前
Linux 设备驱动匹配机制
linux·笔记·单片机·学习·操作系统·嵌入式
亦暖筑序1 小时前
AgentScope-Java 入门:用 SSE 展示评审任务进度
java·agent·ai编程
TDengine (老段)2 小时前
TDengine SMA 索引 — 块级/文件级统计索引
android·大数据·服务器·数据库·人工智能·时序数据库·tdengine