Дизайн активности прерывается при открытии клавиатуры ввода в Xamarin Android - PullRequest
0 голосов
/ 21 марта 2020

Я только начинаю изучать Xamarin android и сталкиваюсь с некоторыми трудностями с элементами LinearLayout и EditText. Мой дизайн активности полностью тормозит, когда я нажимаю на текстовое поле и открываю клавиатуру ввода.

Вот скриншоты .......

enter image description here enter image description here

Я добавил эту строку кода в файл AndroidManifest. xml, но не получил положительного вывода.

  <activity 
      android:name="CuttingQualityControlScanActivity" 
      android:windowSoftInputMode="stateVisible|adjustResize"/>

Вот мой xml дизайн

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
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"
android:weightSum="1"
android:orientation="vertical"
android:background="@color/colorBackground"
>    
    <LinearLayout
        android:id="@+id/llSite"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight=".09"
        android:orientation="vertical"
        android:gravity="center"
        android:weightSum="1"
        >
        <TextView
            android:id="@+id/txtSite"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight=".35"
            android:text="Site"
            android:textColor="#000"
            android:layout_gravity="bottom"
            android:textStyle="bold"
            android:layout_marginLeft="3dp"            
        />

        <Spinner
            android:id="@+id/spnSite"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight=".60"
            android:background="@drawable/bg_spinner"
            android:fadingEdge="none|vertical|horizontal"
            />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/llTableNo"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight=".09"
        android:orientation="vertical"
        android:gravity="center"
        android:weightSum="1"
        >
        <TextView
            android:id="@+id/txtSite"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight=".35"
            android:text="Table No"
            android:textColor="#000"
            android:layout_gravity="bottom"
            android:textStyle="bold"
            android:layout_marginLeft="3dp"            
        />

        <Spinner
            android:id="@+id/spnTableNo"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight=".60"
            android:background="@drawable/bg_spinner"
            android:fadingEdge="none|vertical|horizontal"
            />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/llCuttingControl"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight=".09"
        android:orientation="horizontal"
        android:weightSum="2">
            <LinearLayout
            android:layout_marginRight="10dp"            
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:layout_weight="1"
            android:orientation="vertical" >  

                <TextView
                    android:id="@+id/txtCutNo"
                    android:layout_width="fill_parent"
                    android:layout_height="0dp"
                    android:layout_weight=".35"
                    android:text="Cut No"
                    android:textColor="#000"
                    android:layout_gravity="left"
                    android:textStyle="bold"
                    android:layout_marginLeft="3dp"
                    />

                <Spinner
                    android:id="@+id/spnCutNo"
                    android:layout_width="fill_parent"
                    android:layout_height="0dp"
                    android:layout_weight=".55"
                    android:fadingEdge="none|vertical|horizontal"
                    android:background="@drawable/bg_spinner"
                    />       
            </LinearLayout>   


        <LinearLayout
            android:layout_marginLeft="10dp"
            android:id="@+id/linearLayout2"
            android:layout_height="wrap_content"
             android:layout_width="match_parent"
            android:layout_weight="1"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/txtCuttingStatus"
                android:layout_width="fill_parent"
                android:layout_height="0dp"
                android:layout_weight=".35"
                android:text="Cuttring Status"
                android:textColor="#000"
                android:layout_gravity="left"
                android:textStyle="bold"
                android:layout_marginLeft="3dp"
                />

                <Spinner
                    android:id="@+id/spnCuttingStatus"
                    android:layout_width="fill_parent"
                    android:layout_height="0dp"
                    android:layout_weight=".55"
                    android:fadingEdge="none|vertical|horizontal"
                    android:background="@drawable/bg_spinner"           
                 />     
        </LinearLayout>  
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight=".09"
        android:orientation="horizontal"
        android:gravity="center"
        android:weightSum="1"
        >
        <Button
            android:id="@+id/btnbatchscan"
            android:layout_width="0dp"
            android:layout_height="48dp"
            android:layout_weight=".5"
            android:text="Submit"
            android:textColor="@color/colorBackground"
            android:layout_gravity="center_vertical"
            android:textAlignment="center"
            android:textStyle="bold"
            android:background="@drawable/ellipsshape"            
        />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/llBadGoodControl"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight=".09"
        android:orientation="horizontal"
        android:weightSum="2">
            <LinearLayout
            android:layout_marginRight="10dp"            
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:layout_weight="1"
            android:orientation="vertical" >  

                <TextView
                    android:id="@+id/txtGoodPanel"
                    android:layout_width="fill_parent"
                    android:layout_height="0dp"
                    android:layout_weight=".35"
                    android:text="Good Panel"
                    android:textColor="#000"
                    android:layout_gravity="left"
                    android:textStyle="bold"
                    android:layout_marginLeft="3dp"
                    />

                   <EditText
                    android:id="@+id/edittext"
                    android:layout_width="match_parent"
                    android:imeOptions="actionGo"
                    android:inputType="text"
                    android:layout_height="wrap_content" />


            </LinearLayout>   


        <LinearLayout
            android:layout_marginLeft="10dp"
            android:id="@+id/llBadPanel"
            android:layout_height="wrap_content"
             android:layout_width="match_parent"
            android:layout_weight="1"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/txtBadPanel"
                android:layout_width="fill_parent"
                android:layout_height="0dp"
                android:layout_weight=".35"
                android:text="Bad Panel"
                android:textColor="#000"
                android:layout_gravity="left"
                android:textStyle="bold"
                android:layout_marginLeft="3dp"
                />

                 <EditText
                    android:id="@+id/edittext"
                    android:layout_width="match_parent"
                    android:imeOptions="actionGo"
                    android:inputType="text"
                    android:layout_height="wrap_content" />    
        </LinearLayout>  
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight=".09"
        android:orientation="horizontal"
        android:weightSum="2">
            <LinearLayout
            android:id="@+id/llPlyNo"
            android:layout_marginRight="10dp"            
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:layout_weight="1"
            android:orientation="vertical" >  

                <TextView
                    android:id="@+id/txtPlyNo"
                    android:layout_width="fill_parent"
                    android:layout_height="0dp"
                    android:layout_weight=".35"
                    android:text="Ply No"
                    android:textColor="#000"
                    android:layout_gravity="left"
                    android:textStyle="bold"
                    android:layout_marginLeft="3dp"
                    />

                  <EditText
                    android:id="@+id/edittext"
                    android:layout_width="match_parent"
                    android:imeOptions="actionGo"
                    android:inputType="text"
                    android:layout_height="wrap_content" />

            </LinearLayout>   


        <LinearLayout
            android:layout_marginLeft="10dp"
            android:id="@+id/llPanelType"
            android:layout_height="wrap_content"
             android:layout_width="match_parent"
            android:layout_weight="1"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/txtCuttingStatus"
                android:layout_width="fill_parent"
                android:layout_height="0dp"
                android:layout_weight=".35"
                android:text="Panel Type"
                android:textColor="#000"
                android:layout_gravity="left"
                android:textStyle="bold"
                android:layout_marginLeft="3dp"
                />

                <Spinner
                    android:id="@+id/spnPanelType"
                    android:layout_width="fill_parent"
                    android:layout_height="0dp"
                    android:layout_weight=".55"
                    android:fadingEdge="none|vertical|horizontal"
                    android:background="@drawable/bg_spinner"           
                 />     
        </LinearLayout>  
    </LinearLayout>

    <LinearLayout
        android:id="@+id/llDefect"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight=".09"
        android:orientation="vertical"
        android:gravity="center"
        android:weightSum="1"
        >
        <TextView
            android:id="@+id/txtDefect"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight=".35"
            android:text="Defect"
            android:textColor="#000"
            android:layout_gravity="bottom"
            android:textStyle="bold"
            android:layout_marginLeft="3dp"            
        />

        <Spinner
            android:id="@+id/spnDefect"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight=".60"
            android:background="@drawable/bg_spinner"
            android:fadingEdge="none|vertical|horizontal"
            />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/llgoodbadgmt"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight=".08"
        android:orientation="horizontal"
        android:gravity="center"
        android:weightSum="1"
        android:layout_marginTop="5dp"
        >

         <Button
            android:id="@+id/btnbadgmtqc"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight=".5"
            android:text="Remove(-)"
            android:textColor="@color/colorBackground"
            android:layout_gravity="center_horizontal"
            android:textStyle="bold"
            android:layout_marginLeft="3dp"
            android:layout_marginRight="3dp"
            android:background="@drawable/roundbuttonbadgmt"

        />
        <Button
            android:id="@+id/btngoodgmtqc"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight=".5"
            android:text="Good GMT(+)"
            android:textColor="@color/colorBackground"
            android:layout_gravity="center_horizontal"
            android:textStyle="bold"
            android:layout_marginLeft="3dp"
            android:layout_marginRight="3dp"
            android:background="@drawable/roundbuttongoodgmt"

        />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/llsfdg"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight=".25"
        android:orientation="vertical"
        android:gravity="center"
        android:weightSum="1"
        >
        <Syncfusion.SfDataGrid.SfDataGrid
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:id="@+id/sfDataGridQualitydata"
            android:layout_gravity="center"
        />
    </LinearLayout>

</LinearLayout>

Ответы [ 2 ]

0 голосов
/ 24 марта 2020

После долгих поисков я нашел подсказки от сообщества Xamarin и, к счастью, сработал. Все, что мне нужно, чтобы добавить эту строку в методе oncreate.

this.Window.SetSoftInputMode(SoftInput.AdjustPan);
0 голосов
/ 23 марта 2020

Я полагаю, что вы можете использовать RelativeLayout для разработки своего пользовательского интерфейса, RelativeLayout - это макеты, которые охватывают все доступное пространство и затем изменяются в размерах при появлении клавиатуры. LinearLayout - это макеты, размер которых не изменяется в процессе изменения размера.

Это мой простой пример изменения размера макета при появлении программной клавиатуры.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
    android:id="@+id/label"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Type here:"/>
<EditText
    android:id="@+id/entry"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"

    android:layout_below="@id/label"/>
<Button
    android:id="@+id/ok"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/entry"
    android:layout_alignParentRight="true"
    android:layout_marginLeft="10dip"
    android:text="OK" />
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toLeftOf="@id/ok"
    android:layout_alignTop="@id/ok"
    android:text="Cancel" />

    android:layout_alignParentBottom="true"/>

Пожалуйста, не забудьте добавить WindowSoftInputMode = Android .Views.SoftInput.AdjustResize следующим образом:

 [Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true,  WindowSoftInputMode =Android.Views.SoftInput.AdjustResize)]

Если в RelativeLayout много элементов управления, вам нужно использовать ScrollView для содержит RelativeLayout.

...