<ListView android:id="@+id/rv_list" android:layout_width="match_parent" android:layout_height="0dp" android:layout_marginBottom="50dp" android:divider="#FFFFFF" android:background="@drawable/underline" android:dividerHeight="30dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toBottomOf="@+id/areaState" android:layout_marginTop="4dp" android:layout_marginLeft="4dp" android:layout_marginRight="4dp" android:clipToPadding="false" android:scrollbarStyle="outsideOverlay" android:paddingBottom="20dp" android:layoutDirection="rtl" android:layout_weight="1" android:paddingTop="8dp" android:elevation="8dp" />更新数据页面不返回顶部怎么做
时间: 2023-07-03 10:21:00 浏览: 177
Android应用中通过Layout_weight属性用ListView实现表格
如果你不希望在更新数据后自动返回顶部,可以将 `android:transcriptMode` 属性设置为 `disabled`,这样列表就不会自动滚动到底部。
另外,如果在更新数据后需要保持列表的滚动位置不变,可以记录当前列表的滚动位置,更新数据后再将列表滚动到之前的位置。具体实现方法如下:
1. 在更新数据前,记录当前列表的滚动位置:
```java
int scrollPosition = listView.getFirstVisiblePosition();
View v = listView.getChildAt(0);
int scrollTop = (v == null) ? 0 : (v.getTop() - listView.getPaddingTop());
```
2. 更新数据后,将列表滚动到之前的位置:
```java
listView.setSelectionFromTop(scrollPosition, scrollTop);
```
这样,即使更新数据后列表不自动返回顶部,也能保持之前的滚动位置不变。
阅读全文