ListView가 화면의 끝 부분에있는 항목을 건너 뜁니다. 구분자가보기가 있어야하는 위치가 두꺼 웠기 때문에 항목이 어댑터에 있다고 확신합니다. 거리를 위아래로 스크롤 할 때이 항목이 가끔 표시되지만 다른 항목은 사라집니다.ListView skipps보기/항목
편집 : arrayList의 26 개 항목 중 인덱스 6, 13 및 20이 누락되었습니다. ListView는 활동에서 액세스 한 유일한보기입니다. ListView에의 어댑터의
코드
private class LessonAdapter extends ArrayAdapter<Item> {
LessonAdapter(Activity context, ArrayList<Item> list) {
super(context, 0, list);
if (BuildConfig.DEBUG) Log.v(LOG_TAG, "LessonAdapter() entered");
}
@NonNull
@Override
public View getView(int position, View listItemView, @NonNull ViewGroup parent) {
if (BuildConfig.DEBUG) Log.v(LOG_TAG, "getView() entered");
if (listItemView == null)
listItemView = LayoutInflater.from(getContext()).inflate(
R.layout.lesson_list_item, null, true);
final Item item = getItem(position);
final TextView textView1 = listItemView.findViewById(R.id.lesson_item_body);
final View progressBar = listItemView.findViewById(R.id.lesson_list_progress_bar);
if (position > 0) {
textView1.setVisibility(View.GONE);
textView1.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
textView1.setVisibility(View.GONE);
return false;
}
});
}
Timber.v("mHeader = " + item.mHeader);
Timber.i("height = " + listItemView.getMeasuredHeightAndState());
TextView textView = listItemView.findViewById(R.id.lesson_item_header_text);
View view = listItemView.findViewById(R.id.lesson_item_header_layout);
if (item.mHeader == null || item.mHeader.equals(""))
view.setVisibility(View.GONE);
else {
textView.setText(Html.fromHtml(item.mHeader));
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (textView1.getVisibility() == View.GONE) {
progressBar.setVisibility(View.VISIBLE);
textView1.post(new Runnable() {
public void run() {
Timber.v("mText = " + item.mText);
textView1.setText(Html.fromHtml(item.mText));
progressBar.setVisibility(View.GONE);
textView1.setVisibility(View.VISIBLE);
}
});
} else textView1.setVisibility(View.GONE);
}
});
}
return listItemView;
}
}
XML 목록보기 항목
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/lesson_item">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/lesson_item_header_layout">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:minHeight="50dp"
android:layout_weight="1"
android:id="@+id/lesson_item_header_text"
android:layout_marginTop="8dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:textAppearance="?android:textAppearanceMedium" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_action_drop_down"
android:padding="8dp"
android:layout_gravity="center_vertical"
android:contentDescription="@string/drop_down" />
</LinearLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/lesson_item_body"
android:paddingLeft="4dp"
android:paddingRight="4dp"
android:textAppearance="?android:textAppearanceMedium"
/>
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:id="@+id/lesson_list_progress_bar"
android:visibility="gone"/>
의
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="16dp"
android:orientation="vertical">
<ScrollView
android:id="@+id/lesson_scroll"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:visibility="gone">
<TextView
android:id="@+id/lesson"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="@style/TextAppearance.AppCompat.Medium" />
</ScrollView>
<WebView
android:id="@+id/web_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone" />
<ListView
android:id="@+id/lesson_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollingCache="true"
android:visibility="gone" />
XML3210
많은 것들이 눈에 띄지 않게되거나 스크롤 뷰가 너무 커져서 전체 레이아웃을 덮을 수 있습니다. 부모 레이아웃을 RelativeLayout으로 변경하거나 목록보기를 제외한 모든 항목을 제거하여 모든 항목이 실제로 있는지 확인하려고합니다. 또는 아니요 –
목록보기 만 표시되고 26 개의보기 중 3-4 개만 누락되었습니다. –
보기를 표시하는 활동 코드가 궁금합니다.이 문제의 원인이 있거나 목록보기에서 fill_parent 대신 match_parent를 시도해야합니다. –