2015-04-18 3 views
0

Задача: ListView Невозможно прокрутить вниз, когда изображения загружаются с использованием AsynTask.ListView Прокрутите до конца с помощью AsynTask на изображении

Подробности: Я хочу прокрутить списокView вниз, когда пользователь открывает списокView. Список содержит как изображения, так и текст. Для лучшего управления памятью я использую предложенный метод here, который показывает небольшую иконку при загрузке растрового изображения.

Для того, чтобы прокрутить вниз, я использовал»

`listview.setStackFromBottom(true);` 

и:

listView.setSelection(adapter.getCount()-1); 

Однако для изображений ListView, он просто не может прокручивать вниз Есть ли какие-либо решения. этот вопрос?

enter image description here

+0

Попробуйте добавить 'android: stackFromBottom =" true "и' android: transcriptMode = "alwaysScroll" 'в вашем макете подсветки – Rami

ответ

0

я, наконец, выяснить корень проблемы , При загрузке изображений в ListView с помощью «AsyncTask», вам нужно использовать

listView.setOverScrollMode(View.OVER_SCROLL_IF_CONTENT_SCROLLS); 

Мой ListView не можете прокручивать вниз, как я установить

listView.setOverScrollMode(View.OVER_SCROLL_NEVER); 

, что приводит к обсуждаемому выше.

0

использование android:stackFromBottom="true" в ваш расклад xml.

Например,

<ListView 
     android:id="@+id/listView1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:divider="@null" 
     android:stackFromBottom="true" > 
</ListView> 

Надеется, что это работает отлично.

1

ваш AsyncTaskonPostExecute должен выглядеть примерно так

@Override 
    protected void onPostExecute(Void result) { 
     // TODO Auto-generated method stub 
     super.onPostExecute(result); 
     if(adapter!=null && commentList.size()>0){ 
      adapter=new ImageAdapter((Activity) activity, imageList); 
      listView.setAdapter(adapter); 
      scrollListViewToBottom(); 
     } 
    } 

, а затем метод scrollListViewToBottom()

private void scrollListViewToBottom() { 
    listView.post(new Runnable() { 
     @Override 
     public void run() { 
      // Select the last row so it will scroll into view... 
      listView.setSelection(adapter.getCount()); 
     } 
    }); 
} 

и вы сделали :)

+0

Я не использую ImageAdapter. Вместо этого getView адаптера получит путь к изображению, и я использую новую AsyncTask для ее загрузки в растровое изображение. Я думал об использовании вашего метода, но я не знаю, как узнать, когда закончилась моя последняя AsyncTask. –

+0

1) Нет такой вещи, как ImageAdapter, это было только для вашей справки. Это может работать с любым адаптером (Baseadapter, Arrayadapter) 2) onPostExecute метод asynctask вы можете проверить (это) [http://stackoverflow.com/questions/20492641/get-the-result-from-async-task] –

Смежные вопросы