我对Xamarin / Android开发相当新,目前面临以下问题:
我有一个带有十几个输入控件的Activity,在ScrollView中使用TableLayout格式化。另外还有一个ListView,它从SQLite表onCreate()中填充数据并呈现为CheckBox-List。 如果键盘不可见,我可以看到所有元素(目前为四个)。一旦键盘可见,我向下滚动到ListView,只有一个元素可以点击。 我尝试了其他线程提出的一些解决方案(比如this),但它仍然不起作用。
以下是基本布局:
<ScrollView>
...
<ListView />
...
</ScrollView>
活动设置为android:windowSoftInputMode="stateVisible|adjustResize"
我不确定我是否使用了正确的布局元素,或者我是否应该使用其他方式以编程方式从我的SQLite表中生成复选框?
答案 0 :(得分:0)
scrollview只能有一个孩子。 将linearlayout(垂直方向)作为滚动视图的唯一子项。 然后将您的项目(和列表视图)放在此线性布局中。
答案 1 :(得分:0)
欢迎来到Xamarin世界!
首先,您应该遵循不在ScrollView内嵌套ListView的方法,反之亦然,这只会给您带来很多您要避免的UX问题。
第二,这是一个众所周知的问题,是由于Xamarin Forms上的错误引起的。
由于该错误,无法将WindowSoftInputMode属性设置为活动本身并不完全有效,因此您必须通过在
下添加以下代码行来显式设置此属性。LoadApplication(new App());
致电:
Xamarin.Forms.Application.Current.On<Xamarin.Forms.PlatformConfiguration.Android>().UseWindowSoftInputModeAdjust(WindowSoftInputModeAdjust.Resize);