可扩展的列表视图子视图未显示在 android 中的位置

问题描述

嗨,在下面的代码中,我实现了一个可扩展的列表视图。列表包含 3 个列表标题名称,如基本测试详细信息、医疗报告、医疗图像。有了这个,我可以垂直查看标题名称。单击 header1 想要显示 linear_profile 表单,我期望我正在显示表单。但我的问题是表单的位置显示在三个标题的末尾。但是要在header 1下面显示,然后header2和header 3的名字就应该来了。

谁能帮助我哪里出错了?

ma​​in.xml

<LinearLayout
    android:id="@+id/medical_history"
    android:layout_height="650dp"
    android:layout_marginTop="5dp"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:visibility="gone">

    <ExpandableListView
        android:divider="@android:color/darker_gray"
        android:dividerHeight="0.5dp"
        android:groupIndicator="@drawable/settings_selector"
        android:id="@+id/medial_expand"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:transcriptMode="disabled" />

    <LinearLayout
        android:id="@+id/basic_details"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:orientation="vertical"
        android:visibility="gone">

        <com.google.android.material.textfield.TextInputLayout
            android:hint="@string/temperature"
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:padding="10dp"
            android:paddingLeft="16dp"
            android:textColorHint="@color/theme">

            <com.google.android.material.textfield.TextInputEditText
                android:id="@+id/temperature"
                android:imeOptions="actionNext"
                android:inputType="number"
                android:layout_height="wrap_content"
                android:layout_width="match_parent"
                android:singleLine="true"
                android:textColor="@color/theme"
                android:theme="@style/myTextInputLabel" />

        </com.google.android.material.textfield.TextInputLayout>

        <com.google.android.material.textfield.TextInputLayout
            android:hint="@string/blood_pressure"
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:padding="10dp"
            android:paddingLeft="16dp"
            android:textColorHint="@color/theme">

            <com.google.android.material.textfield.TextInputEditText
                android:id="@+id/blood_pressure"
                android:inputType="text"
                android:layout_height="wrap_content"
                android:layout_width="match_parent"
                android:singleLine="true"
                android:textColor="@color/theme"
                android:theme="@style/myTextInputLabel" />

        </com.google.android.material.textfield.TextInputLayout>

        <TextView
            android:hint="Blood glucose"
            android:id="@+id/blood_glucose"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:padding="10dp"
            android:textColorHint="@color/theme"
            android:textSize="16sp" />

        <LinearLayout
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:orientation="horizontal"
            android:padding="10dp"
            android:paddingLeft="16dp"
            android:weightSum="2">

            <com.google.android.material.textfield.TextInputLayout
                android:hint="@string/fasting"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:layout_width="0dp"
                android:textColorHint="@color/theme">

                <com.google.android.material.textfield.TextInputEditText
                    android:id="@+id/fasting"
                    android:imeOptions="actionNext"
                    android:inputType="text"
                    android:layout_height="wrap_content"
                    android:layout_width="200dp"
                    android:singleLine="true"
                    android:textColor="@color/theme"
                    android:theme="@style/myTextInputLabel" />

            </com.google.android.material.textfield.TextInputLayout>

            <com.google.android.material.textfield.TextInputLayout
                android:hint="@string/after_food"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:layout_width="0dp"
                android:textColorHint="@color/theme">

                <com.google.android.material.textfield.TextInputEditText
                    android:id="@+id/after_food"
                    android:imeOptions="actionNext"
                    android:inputType="text"
                    android:layout_height="wrap_content"
                    android:layout_width="200dp"
                    android:singleLine="true"
                    android:textColor="@color/theme"
                    android:theme="@style/myTextInputLabel" />

            </com.google.android.material.textfield.TextInputLayout>
            
        </LinearLayout>
        
    </LinearLayout>

    <Button
        android:background="@drawable/border"
        android:backgroundTint="@color/theme"
        android:gravity="center"
        android:layout_gravity="right"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:layout_width="wrap_content"
        android:padding="15dp"
        android:text="Save and Next"
        android:textColor="@color/white"></Button>

</LinearLayout>

Fragment.java

 ExpandableListView medial_expand=(ExpandableListView)convertView. findViewById(R.id.medial_expand);
            prepareListData();
            ExpanableAllergiesMedications mMenuAdapter = new ExpanableAllergiesMedications(mContext,listDataHeader,listDataChild,medial_expand);
            medial_expand.setAdapter (mMenuAdapter);
            medial_expand.setonGroupClickListener (new android.widget.ExpandableListView.OnGroupClickListener ( ) {
                @Override
                public boolean onGroupClick(ExpandableListView parent,View v,int groupPosition,long id) {

                    Fragment fragment = null;
                    switch (groupPosition) {
                        case 0:
                            linear_basicdetials.setVisibility(View.VISIBLE);
                            Toast.makeText(mContext,"Basic test details",Toast.LENGTH_LONG).show();
                            break;
                        default:
                            break;
                    }
                    return false;
                }

            });

prepareListData 方法

 private void prepareListData() {
        listDataHeader = new ArrayList<ExpandedMenuModel>();
        listDataChild = new HashMap<ExpandedMenuModel,List<String>>( );

        ExpandedMenuModel item0 = new ExpandedMenuModel ( );
        item0.setIconName ("BASIC TEST DETAILS");
        listDataHeader.add (item0);
        List<String> heading0 = new ArrayList<String>( );

        ExpandedMenuModel item1 = new ExpandedMenuModel ( );
        item1.setIconName ("MEDICAL REPORTS");
        listDataHeader.add (item1);
        List<String> heading1 = new ArrayList<String>( );
//
        ExpandedMenuModel item2 = new ExpandedMenuModel ( );
        item2.setIconName ("MEDICAL IMAGES");
        listDataHeader.add (item2);
        List<String> heading2 = new ArrayList<String>( );

        listDataChild.put (listDataHeader.get (0),heading0);
        listDataChild.put (listDataHeader.get (1),heading1);
        listDataChild.put (listDataHeader.get (2),heading2);
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...