gpt4 book ai didi

java - 单击展开 ListItem 到新 View

转载 作者:太空宇宙 更新时间:2023-11-03 12:06:33 24 4
gpt4 key购买 nike

我有一个像这样的包含一些文本的 ListView

this

而且我想扩展每个项目来喜欢这个

this

我看到了这个答案(How can I make a cell in a ListView in Android expand and contract vertically when it's touched?),这里它没有改变到新 View ,只是改变了高度。

更新:list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container1"
android:layout_width="match_parent"
android:layout_height="100dp"
android:clickable="true"
android:background="@drawable/list_selected">

<RelativeLayout

android:id="@+id/relaboveline1"
android:layout_width="match_parent"
android:layout_height="match_parent">

<View
android:id="@+id/sidebar"
android:layout_width="15dp"
android:layout_height="match_parent"
android:background="#4ED6CA" />

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:weightSum="100"
android:layout_toRightOf="@+id/sidebar"
android:layout_toEndOf="@+id/sidebar">

<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="20">

<RelativeLayout
android:id="@+id/cal"
android:layout_width="60dp"
android:layout_height="match_parent">

<TextView
android:id="@+id/date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="22"
android:textColor="#FF8801"
android:textStyle="bold"
android:layout_centerHorizontal="true"
android:textSize="35sp"
android:layout_alignParentTop="true" />


<TextView
android:id="@+id/month"
android:textColor="#FF8801"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@+id/date"
android:textSize="20sp"
android:text="MAY" />

<TextView
android:id="@+id/year"
android:textColor="#FF8801"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@+id/month"
android:textSize="20sp"
android:text="2015" />
</RelativeLayout>

<View
android:id="@+id/divider"
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_toRightOf="@+id/cal"
android:layout_toEndOf="@+id/cal"
android:background="#DADADA" />
</LinearLayout>

<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="60">

<RelativeLayout
android:id="@+id/content"

android:layout_width="200dp"
android:paddingTop="5dp"

android:paddingLeft="8dp"
android:layout_height="match_parent">

<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:textStyle="bold"
android:text="High School Graduation" />

<TextView
android:id="@+id/contentdesc"
android:layout_width="wrap_content"
android:layout_marginTop="10dp"

android:layout_height="wrap_content"
android:layout_below="@+id/title"
android:text="@string/dummy" />
</RelativeLayout>
</LinearLayout>

<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="20">

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="10dp"
>

<TextView

android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_centerHorizontal="true"
android:textStyle="bold"

android:text="5B"
android:id="@+id/classDiv" />

<RelativeLayout
android:layout_below="@+id/classDiv"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerHorizontal="true">

<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_centerInParent="true"
android:src="@drawable/star_yellow" />
</RelativeLayout>
</RelativeLayout>
</LinearLayout>
</LinearLayout>
</RelativeLayout>

<View
android:id="@+id/line2"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_below="@+id/relaboveline1"
android:background="#DADADA" />

最佳答案

您可以使用 ExpandableListView:

  1. 您为 child 定义一个自定义布局(单击该行时的详细信息)
  2. 您定义一个public class ExpandableAdapter extends BaseExpandableListAdapter

  3. 重写方法

    public View getChildView(int groupPosition, int childPosition,
    boolean isLastChild, View convertView, ViewGroup parent) {
    ....
    }

    在何处实现详细布局(子布局)。

  4. 重写方法

    public View getGroupView(int groupPosition, boolean isExpanded,
    View convertView, ViewGroup parent) {
    ...
    }

    在其中实现类似于 ListView 的布局。

  5. 在您的 ExpandableListView 实例中设置自定义适配器

如果您想了解更多信息,请在此处查看我的帖子 http://www.survivingwithandroid.com/2013/01/android-expandablelistview-baseexpandablelistadapter.html

关于java - 单击展开 ListItem 到新 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28450912/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com