我试图将自定义列表视图的布局模型包含在一个自定义列表视图layout.xml文件中,然后使用自定义适配器类(通过kotlin)对其进行充气。
数据看起来很好,并且行格式是准确的,除了每行重复标题是例外。我猜想我可以将标题移出列表视图layout.xml文件,但我希望保留该自包含内容,以便可以重复使用。
这是有问题的布局文件:
.catch()
我相信解决方案将是弄清楚如何选择estimated_ftp_row id并对其进行充气,而不是对整个estimated_fto.xml文件进行充气。
这是适配器中的代码,用于在getView方法中进行膨胀之前选择布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<!-- Header aligned to top -->
<RelativeLayout
android:id="@+id/estimated_ftp_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:background="@color/colorHeader"
android:gravity="start" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:text="@string/estimated_ftp"
android:textColor="#000"
android:textSize="20sp" />
</RelativeLayout>
<!-- Content below header -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:layout_below="@id/estimated_ftp_header"
android:orientation="horizontal"
android:padding="6dip"
android:id="@+id/estimated_ftp_row">
<ImageView
android:contentDescription="@string/ftp_type"
android:id="@+id/ftp_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/centerPoint"
android:gravity = "center|end|end"
android:src="@drawable/glyphicons_13_heart"/>
<TextView
android:id="@+id/centerPoint"
android:text=""
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true" />
<TextView
android:id="@+id/ftp_value"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_toRightOf="@+id/centerPoint"
android:gravity = "center|start|start"
android:text="141 bpm"/>
</RelativeLayout>
我该如何更改inflater.inflate使其在R.layout.estimated_ftp中膨胀?
FWIW,活动的XML布局在用作占位符的位置中具有ListView控件。它不引用自定义布局文件。该连接是通过上述适配器类完成的。不知道这是不是一个问题,所以我想提一下...
预先感谢您的任何建议。
迈克
解决方案更新: https://stackoverflow.com/users/2850651/mike-m得到了我需要的指导。我能够将行格式与标头格式XML布局分开。适配器未更改,如果发现有问题的列表的内容,活动将添加新的代码以添加标题。
val inflater = activity?.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
view = inflater.inflate(R.layout.estimated_ftp, null)
viewHolder = ViewHolder(view)
view?.tag = viewHolder
答案 0 :(得分:0)
解决方案:
https://stackoverflow.com/users/2850651/mike-m得到了我需要的指导。我能够将行格式与标头格式XML布局分开。适配器未更改,如果发现有问题的列表的内容,活动将添加新的代码以添加标题。
val headerView = layoutInflater.inflate(R.layout.estimated_ftp_head, null)
estimated_ftp_list.addHeaderView(headerView)