我遇到了一个问题,EditText在ListView中是连续的。
用户可以在EditText中输入多行文本。每个新行都会导致Row展开,而ListView则会刷新/更新。
我如何才能:
我试过:
目前使用:
发布于 2013-02-01 19:10:19
尝试在DescendantFocusability上播放ListView属性。我认为将其设置为DescendantFocusability.AfterDescendants,可能会解决焦点和调整大小的问题。
它适用于我的小样本:
MainActivity.cs
using Android.App;
using Android.Views;
using Android.Widget;
using Android.OS;
namespace ListViewTests
{
[Activity(Label = "ListViewTests", MainLauncher = true, Icon = "@drawable/icon")]
public class Activity1 : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
var lv = FindViewById<ListView>(Resource.Id.listView);
lv.Adapter = new ArrayAdapter(this, Resource.Layout.ListViewItem, Resource.Id.textView, new [] {"1", "2"});
lv.DescendantFocusability = DescendantFocusability.AfterDescendants;
}
}
}ListViewItem.axml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/textView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<EditText
android:id="@+id/editText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>然而,您的问题是视图被回收可能需要一些更多的工作。您需要以某种方式保存视图的状态,并在视图再次创建时恢复状态。因此,对于适配器中的每个项,您需要连接到视图的事件。也就是说,对于EditText,您希望连接到TextChanged或AfterTextChanged,以获取包含的文本并将状态保存到某个地方。这可能是您正在显示的适配器中的项。
https://stackoverflow.com/questions/14651266
复制相似问题