3min初识ListView(4)-inflate打气筒实现复杂布局

来源:互联网 发布:全国计算机二级vb题型 编辑:程序博客网 时间:2024/05/18 01:44

回首往事,看一下我们ListView的item,就是一个TextView,实在是太简陋了,今天我们通过inflate打气筒实现复杂布局。

我们实现的布局如图,左边是一个ImageView作为icon,右上是一个TextView作为title,右下是一个TextView作为content,整体使用相对布局。

ps:这只是复杂布局的一个简单示意,举一反三,更复杂的布局由你发挥。


关于布局的实现只提2点,TextView的2个属性,ellipsize设置当文字过长时,省略号的出现位置;singleLine设置单行显示。

        android:singleLine="true"        android:ellipsize="end"

开始写核心代码,关键是getView,getView返回一个View,但我们现在有3个View,怎么办?

Duang~inflate打气筒出现了。

View.inflate(getApplicationContext(),R.layout.item,null)


inflate打气筒:将布局资源转换为View对象然后返回来。

传入3个参数,第一个上下文,一般使用getApplicationContext,第二个资源id,即我们的item,第三个ViewGroup我们设置为空,一般用不上。
ps:LinearLayout、RelativeLayout等都继承自ViewGroup,ViewGroup可以有自己的孩子。

最后附上核心方法代码:

        //获取View,作为ListView的一个条目显示        @Override        public View getView(int position, View convertView, ViewGroup viewGroup) {            //布局资源->View对象            //LinearLayout、RelativeLayout等都继承自ViewGroup,ViewGroup可以有自己的孩子。            View view;            //View convertView 历史缓存对象            if (convertView == null){                view = View.inflate(getApplicationContext(),R.layout.item,null);            }else{                view = convertView;            }            return view;        }




0 0
原创粉丝点击