我正在使用edittext进行数据绑定。我面临的问题是,方向改变会导致文本丢失。所以我通过保存onSaveInstanceState来设置文本。但随后文本的重点显示在文本的开头。我验证了edittext有一个唯一的id,因为这是文本丢失的主要原因。
<EditText
android:id="@+id/searchTextView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusable="true"
android:focusableInTouchMode="true"
android:imeOptions="actionDone|flagNoExtractUi"
android:inputType="textNoSuggestions|textEmailAddress"
android:text="@={searchText}"
android:textColor="?colorShade1"
android:textColorHint="?colorShade3"
android:textSize="28sp" >
<requestFocus/>
</EditText>
答案 0 :(得分:0)
您遇到的问题可能是在恢复视图状态后应用绑定。换句话说,在正确设置光标位置的情况下恢复视图状态,然后通过绑定消除该恢复。解决方案是在视图恢复之前应用绑定。
How to keep user inputs on screen orientation change with Android DataBinding library?是一篇文章,内容涵盖了如何执行此操作的详细信息。 How Do We Get Data Binding To Use Saved Instance State?是一个相关问题。