android 怎么给listview添加一个固定表头以及显示像table的效果

android 怎么给listview添加一个固定表头以及显示像table的效果,第1张

你是的意思是在listView的每一项里都加一个固定的按钮或图片吗,那就将它写到一个xml中,然后inflate到listView中,这样listView的每一项的布局就都是xml中的布局了。

第一个头布局我 设置了一下 位置,目的是为了证明,在自定义下拉刷新时,当listview已经添加了一个headerview时候,可以继续添加一个headerview,不影响下拉刷新

代码如下:

MainActivity

package com.ss.hsx

import android.app.Activity

import android.os.Bundle

import android.widget.ArrayAdapter

public class MainActivity extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState)

setContentView(R.layout.main)

MyListView listView = (MyListView) findViewById(R.id.listView)

String[] data = new String[] { "第一个", "第二个", "第三个" }

ArrayAdapter<String>adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, data)

listView.setAdapter(adapter)

}

}

MyListView

package com.ss.hsx

import android.content.Context

import android.util.AttributeSet

import android.view.LayoutInflater

import android.view.View

import android.widget.ListView

public class MyListView extends ListView {

View one

public MyListView(Context context) {

super(context)

initHeaderView(context)

}

public MyListView(Context context, AttributeSet attrs) {

super(context, attrs)

initHeaderView(context)

}

public MyListView(Context context, AttributeSet attrs, int defStyle) {

super(context, attrs, defStyle)

initHeaderView(context)

}

private void initHeaderView(Context context) {

LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)

one = inflater.inflate(R.layout.one, null)

View two = inflater.inflate(R.layout.two, null)

addHeaderView(one)

addHeaderView(two)

}

@Override

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

super.onMeasure(widthMeasureSpec, heightMeasureSpec)

//控制第一个头部布局的位置

one.setPadding(0, -1 * one.getHeight()/2, 0, 0)

}

}

上一篇介绍Banner的开发。在大多数应用场景中。banner和ListView通常是一起显示的。 并且能够共同滑动。例如如下界面:

要实现上图的界面,直接想到是ListView添加Header。但在Flutter中,ListView 组件相当于RecyclerView,所以添加Header也用RecyclerView的原理:

封装ListPage组件,list_page.dart

使用及测试:异步加载网络数据使用


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

原文地址:https://54852.com/bake/11891377.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存