2013-03-12 5 views
1

У меня есть список, который заполняется из асинхронной задачи, которая получает данные с сервера. Однако, когда открывается список, появляется полоса прокрутки и сразу же исчезает. Моя основная деятельность расширяет MapActivity, так как я отображаю карту над списком. Кто-нибудь знает, почему полоса прокрутки исчезает и как ее исправлять? Ниже мой основной макет.Listview scrollbar исчезает

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
> 

<TextView 
    android:text="Address is: " 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/address_view" /> 

<com.google.android.maps.MapView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/mapvw" 
    android:layout_width="match_parent" 
    android:layout_height="250dp" 
    android:enabled="true" 
    android:clickable="true" 
    android:apiKey="xxxxxxxxxxxxxxxxxx" 
    /> 
<ListView 
    android:id="@+id/list" 
    android:layout_width="match_parent" 
    android:layout_height="200dp" 
    android:scrollbars="vertical" 
    android:drawSelectorOnTop="false" /> 

</LinearLayout> 

Это мой собственный макет для списка.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/linearLayout1" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" > 


    <TextView 
    android:id="@+id/viewtext" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center_vertical" 
    android:minHeight="?android:attr/listPreferredItemHeight" 
    android:paddingLeft="6sp" 
    android:textColor="#000000" 
    android:textSize="15sp" 
    android:paddingRight="10sp" 
    /> 
    </LinearLayout> 

И ниже логика для создания ListView:

@Override 
    protected void onPostExecute(ArrayList<String> result) { 
......... some code 

List<String> viewline = new ArrayList<String>(); 
    ..... some code 
    mapView.postInvalidate(); 

     final ArrayAdapter<String> arrayAdpt = new ArrayAdapter<String>(getApplicationContext(), R.layout.listview, R.id.viewtext, viewline); 

     ListView restaurant_list = (ListView) findViewById(R.id.list); 
     restaurant_list.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 
     restaurant_list.setAdapter(arrayAdpt); 
     restaurant_list.setScrollContainer(true); 
     restaurant_list.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, 
        int arg2, long arg3) { 
       // TODO Auto-generated method stub 
       Toast.makeText(getApplicationContext(), "You have selected " + String.valueOf(arg2) + " arg3=" + String.valueOf(arg3) , Toast.LENGTH_LONG).show(); 
      } 

     }); 

    } 

ответ

3

Есть два способа, чтобы остановить ваши полосы прокрутки от выцветания с вашего ListView. Вам нужно только сделать один из них.

В коде:

restaurant_list.setScrollbarFadingEnabled(false); 

В XML:

android:fadeScrollbars="false" 

Reference

+0

Спасибо за ваше предложение. Я добавил android: fadeScrollbars = "false", и теперь они появляются, но они не работают. Я тестирую эмулятор, и если я использую колесо мыши или ключ pagedown, ничего не происходит. Есть ли способ прокрутки с помощью эмулятора? – Dave

+0

Нажмите и перетащите его, как если бы это был сенсорный экран. – MCeley

+0

Я попытался щелкнуть и перетащить, и это тоже не сработало. Любые другие предложения? Я не могу протестировать настоящее устройство прямо сейчас, поскольку я жду, чтобы получить новую Galaxy Samsung. – Dave