Visual studio 在Xamarin Android中打开输入键盘时,活动设计被打破
我刚开始学习Xamarin android,在LinearLayout和EditText控件方面遇到了一些困难。 当我点击文本框并打开输入键盘时,我的活动设计完全停止了 这是截图 我在AndroidManifest.xml文件中添加了这行代码,但没有得到任何积极的输出Visual studio 在Xamarin Android中打开输入键盘时,活动设计被打破,visual-studio,xamarin.android,Visual Studio,Xamarin.android,我刚开始学习Xamarin android,在LinearLayout和EditText控件方面遇到了一些困难。 当我点击文本框并打开输入键盘时,我的活动设计完全停止了 这是截图 我在AndroidManifest.xml文件中添加了这行代码,但没有得到任何积极的输出 <activity android:name="CuttingQualityControlScanActivity" android:windowSoftInputMode="stateV
<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>
我建议您可以使用RelativeLayout来设计UI,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" />
请不要忘记添加WindowsOfInputMode=Android.Views.SoftInput.AdjustResize,如下所示:
[Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true, WindowSoftInputMode =Android.Views.SoftInput.AdjustResize)]
如果RelativeLayout中有许多控件,则需要使用ScrollView来包含RetativeLayout 经过大量搜索,我从Xamarin社区中找到了一些提示,幸运的是它起了作用。我只需要在oncreate方法中添加这一行
this.Window.SetSoftInputMode(SoftInput.AdjustPan);
谢谢你的回答。我已经找到了一个解决方案。我只需要在OnCreate方法中使用这行代码。此.Window.SetSoftInputMode(软输入.AdjustPan);
this.Window.SetSoftInputMode(SoftInput.AdjustPan);