각 행의 길이가 EditText
인 간단한 ListView
을 만듭니다. 여기 내 R.layout.item
경우 : EditText
가 android:inputType="textMultiLine"
플래그를 통해 멀티 라인 입력을 허용하는 방법ListView가 여러 줄로 입력 할 때 맨 위로 스크롤 EditText
<?xml version="1.0" encoding="utf-8"?>
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textMultiLine">
</EditText>
알 수 있습니다. ArrayAdapter
을 사용하여 ListView
을 스크롤 할 수있는 행 번호로 채 웁니다. 내 경우에는 항목이 다음은 40입니다 내 MainActivity.java
:
EditText
가에 대한 수용하기 위해 크기를 변경
public class MainActivity extends ListActivity {
final int NUM_ITEMS = 40;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String[] items = new String[NUM_ITEMS];
for (int i = 0; i < NUM_ITEMS; i++) {
items[i] = Integer.toString(i);
}
setListAdapter(new ArrayAdapter<String>(this, R.layout.item, items));
}
}
두 번째 행에 갑자기 ListView
이 자동으로 맨 위로 스크롤됩니다.
내가 묘사 한 행동을 끔찍한 사용자 경험이라고 생각하며 나는 왜 이것이 디폴트가되어야하는지 이해하기 위해 고심합니다. 내가 찾는 행동은 위의 행을 넣은 채로 머물러야하고 아래 행은 필요한 금액만큼 이동하여 확장 된 EditText
을위한 공간을 남겨 두는 것입니다. 그것을 어떻게 성취 할 수 있습니까?
몇 가지 추가 정보는 Android 4.2.2에 대한 에뮬레이터에서이 코드를 실행하며 장치는 3.2 "HVGA 슬라이더 (ADP1)입니다. 사용자가 경험 한 버그를 재현하기 위해 특정 장치를 선택했습니다
. 참으로 이상한 기본 동작하지만 그 대신 문제의 원인과 투쟁의
포커스와 리사이클링 때문에 EditTexts와 ListViews를 혼합하지 말 것을 제안합니다. 엉덩이에 큰 고통을줍니다. 그렇게 많은 EditText를 가질 계획이 없다면 ScrollView를 사용하는 것이 좋습니다. – dmon
불행히도 ListView 내에서 EditTexts를 중심으로 전체 앱 개념을 구축했습니다. [my app] (https://play.google.com/store/apps/details?id=dk.bendingspoons.fontsy)을 확인하면 내가 실제로 변경할 수 없다는 것을 이해할 수 있습니다 :)하지만 네 말이 맞아. 엉덩이에 큰 고통이 있습니다. –