如果键盘可见,则显示所有ListView项目

时间:2016-04-18 20:05:37

标签: android xamarin xamarin.android

我对Xamarin / Android开发相当新,目前面临以下问题:

我有一个带有十几个输入控件的Activity,在ScrollView中使用TableLayout格式化。另外还有一个ListView,它从SQLite表onCreate()中填充数据并呈现为CheckBox-List。 如果键盘不可见,我可以看到所有元素(目前为四个)。一旦键盘可见,我向下滚动到ListView,只有一个元素可以点击。 我尝试了其他线程提出的一些解决方案(比如this),但它仍然不起作用。

以下是基本布局:

<ScrollView>
...
<ListView />
...
</ScrollView>

活动设置为android:windowSoftInputMode="stateVisible|adjustResize"

我不确定我是否使用了正确的布局元素,或者我是否应该使用其他方式以编程方式从我的SQLite表中生成复选框?

2 个答案:

答案 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);