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

回首往事,看一下我们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;
        }




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值