У меня есть список в моем проекте, в нем есть изображение и информация.
SO предполагают, что он содержит информацию о 50 человек. Теперь, если я хочу удалить последние два элемента, после удаления последнего элемента listlview автоматически фокусируется в верхней части списка.
Итак, теперь пользователь прокручивает весь элемент до 49-го элемента и удаляет его.
Итак, есть ли способ исправить положение listview в этой позиции, откуда я удаляю элемент.Listview автоматически прокручивается наверх
// код для удаления информации
public void deleteFeed(int rowID) {
// fetch the image File name
Cursor cursor = dbAdapter.getTimelineFeedByID(mSysPrefs.getBabyID(), rowID);
if(cursor != null && cursor.moveToFirst()) {
// fetch from DB Cursor
String imageFileName = cursor.getString(cursor.getColumnIndex(DatabaseAppHelper.KEY_IMAGENAME));
File file = new File(GlobalConstants.FILE_PATH, imageFileName + GlobalConstants.IMAGE_EXTENSION);
if(file.exists()) {
file.delete();
}
//listview.smoothScrollToPosition(0, listview.getHeight());
listview.smoothScrollToPosition(0, listview.getBottom());
}
// now delete the record from the DB
if(dbAdapter.deleteTimelineFeed(rowID) != -1) {
onResume();
} else {
Toast.makeText(this, "Please try again..", Toast.LENGTH_LONG).show();
}
}
// код для создания списке следует
@Override
protected void onResume() {
super.onResume();
turnGPSOn(); // method to turn on the GPS if its in off state.
getMyCurrentLocation();
dbAdapter.openDBConnection();
new Handler().post(new Runnable() {
@Override
public void run() {
timelineCursorAdapter = new TimelineCursorAdapter(TimelineViewActivity.this,
dbAdapter.getAllTimelineFeedsForBaby(mSysPrefs.getBabyID()), 0);
listview.setAdapter(timelineCursorAdapter);
//timelineCursorAdapter.notifyDataSetChanged();
listview.invalidateViews();
}
});
}
Try 'listView.setSelectionAfterHeaderView();' или 'list.smoothScrollToPosition (0);' –
можете ли вы опубликовать код, который вы используете для этого? вам будет проще помочь вам таким образом –