Visual Studio 2017 Xamarin Нужно сделать прокрутку с прокруткой - PullRequest
0 голосов
/ 17 февраля 2019

У меня есть следующий axml, который, очевидно, не работает, потому что у меня есть многоуровневые линейные макеты.Мне нужно сделать этот макет прокручиваемым, так как у меня есть много данных, которые мне нужно захватить.Ничто из того, что я смог найти, не сработало.

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:minWidth="25px"
    android:minHeight="25px"
    tools:ignore="HardcodedText">
    <HorizontalScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Parents Information"
                android:id="@+id/btnparents_info" />
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Medical Information"
                android:id="@+id/btnmedical_info" />
        </LinearLayout>
    </HorizontalScrollView>
    <ImageView
        android:src="@android:drawable/ic_menu_gallery"
        android:layout_width="175dp"
        android:layout_height="175dp"
        android:layout_gravity="center"
        android:id="@+id/imageview_participant" />
    <TextView
        android:text="Large Text"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:id="@+id/TextView_name" />

    <ScrollView
        android:id="@+id/scrollView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
        <TextView
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="First Name" />
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/first_name"
            android:text="First Name" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="Middle Initial" />
        <EditText
            android:layout_width="50dp"
            android:layout_height="wrap_content"
            android:maxLength = "1"
            android:id="@+id/mi"
            android:text="M" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="Last Name" />
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/last_name"
            android:text="Last Name" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="130dp"
            android:layout_height="35dp"
            android:layout_marginLeft="10dp"
            android:text="Suffix" />
        <Spinner
            android:layout_width="110dp"
            android:layout_height="35dp"
            android:id="@+id/spinner_suffix" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="Address" />
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/address"
            android:text="Address" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="City" />
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/city"
            android:text="City" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="State" />
        <Spinner
            android:layout_width="110dp"
            android:layout_height="35dp"
            android:id="@+id/state" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="Zip Code" />
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:maxLength = "5"
            android:id="@+id/zip"
            android:text="Zip Code" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="Phone" />
        <MaskedEditText.MaskedEditText
            app:Mask="(###) ###-####"
            app:MaskFill="_"
            android:inputType="phone"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/phone"/>
       </LinearLayout>
    </ScrollView>
</LinearLayout>

Как вы видите, у меня есть многоуровневые линейные макеты в представлении прокрутки, я предполагаю, что это проблема.У меня есть несколько представлений, которые мне нужно будет сделать таким образом.

** ОБНОВЛЕНИЕ **

Я изменил макет на это "

<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:minWidth="25px"
    android:minHeight="25px"
    tools:ignore="HardcodedText">
    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
        <TextView
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="First Name" />
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/first_name"
            android:text="First Name" />
        <TextView
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="Middle Initial" />
        <EditText
            android:layout_width="50dp"
            android:layout_height="wrap_content"
            android:maxLength = "1"
            android:id="@+id/mi"
            android:text="M" />
        <TextView
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="Last Name" />
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/last_name"
            android:text="Last Name" />
        <TextView
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="130dp"
            android:layout_height="35dp"
            android:layout_marginLeft="10dp"
            android:text="Suffix" />
        <Spinner
            android:layout_width="110dp"
            android:layout_height="35dp"
            android:id="@+id/spinner_suffix" />
        <TextView
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="Address" />
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/address"
            android:text="Address" />
        <TextView
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="City" />
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/city"
            android:text="City" />
        <TextView
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="State" />
        <Spinner
            android:layout_width="110dp"
            android:layout_height="35dp"
            android:id="@+id/state" />
        <TextView
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="Zip Code" />
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:maxLength = "5"
            android:id="@+id/zip"
            android:text="Zip Code" />
        <TextView
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="Phone" />
        <MaskedEditText.MaskedEditText
            app:Mask="(###) ###-####"
            app:MaskFill="_"
            android:inputType="phone"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/phone"/>
    </LinearLayout>
</ScrollView>

Все, что я получаю с этимэто первые Textview и EditView рядом, остальные не отображаются вообще, но FindViewById, очевидно, может их найти.

1 Ответ

0 голосов
/ 17 февраля 2019

Причина в том, что в представлении прокрутки может быть только один прямой дочерний элемент:

Решение - просто обернуть все дочерние макеты в один LinearLayout

   <ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android: orientation="vertical"
     >
    // Add your multiple linear layouts here ans set orientation for above linear according to your requirement
     </LinearLayout></ScrollView>

Удачи!

Восстановитьесли это не работает

Обновление

Я хотел, чтобы вы сделали следующее:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:minWidth="25px"
    android:minHeight="25px"
    tools:ignore="HardcodedText">
    <HorizontalScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Parents Information"
                android:id="@+id/btnparents_info" />
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Medical Information"
                android:id="@+id/btnmedical_info" />
        </LinearLayout>
    </HorizontalScrollView>
    <ImageView
        android:src="@android:drawable/ic_menu_gallery"
        android:layout_width="175dp"
        android:layout_height="175dp"
        android:layout_gravity="center"
        android:id="@+id/imageview_participant" />
    <TextView
        android:text="Large Text"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:id="@+id/TextView_name" />

    <ScrollView
        android:id="@+id/scrollView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
        <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android: orientation="vertical"
        >
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
        <TextView
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="First Name" />
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/first_name"
            android:text="First Name" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="Middle Initial" />
        <EditText
            android:layout_width="50dp"
            android:layout_height="wrap_content"
            android:maxLength = "1"
            android:id="@+id/mi"
            android:text="M" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="Last Name" />
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/last_name"
            android:text="Last Name" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="130dp"
            android:layout_height="35dp"
            android:layout_marginLeft="10dp"
            android:text="Suffix" />
        <Spinner
            android:layout_width="110dp"
            android:layout_height="35dp"
            android:id="@+id/spinner_suffix" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="Address" />
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/address"
            android:text="Address" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="City" />
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/city"
            android:text="City" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="State" />
        <Spinner
            android:layout_width="110dp"
            android:layout_height="35dp"
            android:id="@+id/state" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="Zip Code" />
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:maxLength = "5"
            android:id="@+id/zip"
            android:text="Zip Code" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="Phone" />
        <MaskedEditText.MaskedEditText
            app:Mask="(###) ###-####"
            app:MaskFill="_"
            android:inputType="phone"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/phone"/>
       </LinearLayout>
         </LinearLayout>
    </ScrollView>
</LinearLayout>
...