
代码如下:
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
使用及测试:异步加载网络数据使用
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)