【问题标题】:How to Create Static (Using xml file only) ExpandableListView in Android如何在 Android 中创建静态(仅使用 xml 文件)ExpandableListView
【发布时间】:2012-08-14 12:27:17
【问题描述】:

我需要将 GroupData 和 ChildData 直接插入到 xml 文件本身的 ExpandableListView 中,而不使用 java。 Java 文件应该只用于显示 xml 文件而不是用于插入数据。

我们的输出将是:

第 1 组 -> 11 岁儿童、12 岁儿童、13 岁儿童

第 2 组 -> 21 岁儿童、22 岁儿童、23 岁儿童

第 3 组 -> 31 岁儿童、32 岁儿童、33 岁儿童

提前致谢

【问题讨论】:

    标签: android xml expandablelistview


    【解决方案1】:

    我不认为这是可能的。您必须编写代码才能使用 java 文件生成列表视图。

    Look Here 用于生成可扩展列表视图的最短路径。

    【讨论】:

    • 我们如何在 Jetpack compose 中创建相同的内容?
    【解决方案2】:

    如果您不想使用 ExpandableListview 因为 java 代码设置适配器,那么您可以使用 cardview 展开和折叠。 这是静态(XML)折叠和展开功能的最简单方法。

    <android.support.v7.widget.CardView
            android:id="@+id/card_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:elevation="3dp"
            app:cardCornerRadius="0dp">
    
            <LinearLayout
                    android:id="@+id/group_container"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical">
    
                    <TextView
                        android:id="@+id/group_one"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:ellipsize="end"
                        android:lines="1"
                        android:text="Group 1"
                        android:textStyle="bold" />
    
                    <LinearLayout
                        android:id="@+id/child_container"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:visibility="gone"
                        android:orientation="vertical">
    
                        <TextView
                            android:id="@+id/child_one"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:ellipsize="end"
                            android:lines="1"
                            android:text="Child 11" />
    
                        <TextView
                            android:id="@+id/child_two"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:ellipsize="end"
                            android:lines="1"
                            android:text="Child 12" />
    
                        <TextView
                            android:id="@+id/child_three"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:ellipsize="end"
                            android:lines="1"
                            android:text="Child 13" />
    
                    </LinearLayout>
                </LinearLayout>
    </android.support.v7.widget.CardView>
    

    onClickListener中写入如下代码

     cardView = (CardView) findViewById(R.id.card_view);
     childContainer = (LinearLayout) findViewById(R.id.child_container);
     boolean flag = false;
    
        cardView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
    
                if (flag == true) {
                    TransitionManager.beginDelayedTransition(cardView);
                    childContainer.setVisibility(View.GONE);
                    flag = false;
                } else if (flag == false) {
                    TransitionManager.beginDelayedTransition(cardView);
                    childContainer.setVisibility(View.VISIBLE);
                    flag = true;
                }
            }
        });
    

    这是一个组,您可以将此代码复制到更多组。

    【讨论】:

    • 注意将implementation 'com.android.support:cardview-v7:25.+' 添加到您的build.gradle
    • 我们如何在 Jetpack compose 中创建相同的内容?
    猜你喜欢
    • 1970-01-01
    • 2019-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多