ConstraintLayout实现物流详情效果

ConstraintLayout实现跟随其他控件动态线高度效果,效果图:


1550803499(1).png

物流信息不固定所以这里使用的RecyclerView实现动态显示,Activity 布局代码:




    


代码使用的Kotlin(不得不说代码简洁了很多):


        rv.layoutManager=LinearLayoutManager(this)
        rv.adapter=MyAdapter(this)

Adapter:


import android.content.Context
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import kotlinx.android.synthetic.main.item_logistics_detail.view.*

class MyAdapter(private val mContext: Context) : RecyclerView.Adapter() {

    override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): MyViewHolder {
        val view = LayoutInflater.from(mContext).inflate(R.layout.item_logistics_detail, viewGroup, false)
        return MyViewHolder(view)
    }

    override fun onBindViewHolder(myViewHolder: MyViewHolder, i: Int) {
        myViewHolder.itemView.item_logistics_detail_ysh_tv.text=(i+1).toString()
        when(i){
            1->{
                myViewHolder.itemView.item_logistics_detail_start_receive_address_text_view.text="中华人民共和国新疆维吾尔自治区 \n伊犁哈萨克自治州塔城地区和布克赛尔蒙古自治县和什托洛盖镇西特木恩哈布其克村"
            }
            3->{
                myViewHolder.itemView.item_logistics_line_v.visibility=View.GONE
                myViewHolder.itemView.item_logistics_detail_start_receive_address_text_view.text="已收货"
            }
        }
    }

    override fun getItemCount(): Int {
        return 4
    }

    inner class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView)
}

之后就是最主要的item的布局代码:





    

    

    
    
    
    




注:

 app:layout_constraintLeft_toLeftOf="parent" 

app:layout_constraintTop_toBottomOf="@id/item_logistics_detail_ysh_tv"

这些属性可以直接通过字面解读 ,constraintLeft指当前的view的那个方向,toLeftOf相对于"parent" 或者其他view位置所在的方向,第一个可以解读为这个view的左侧相对于父容器的左侧。

你可能感兴趣的:(ConstraintLayout实现物流详情效果)