2014-01-15 3 views
1

У меня есть код для списка в прокрутке. Работы нормально. Но когда приложение запускается, фокус всегда помещается в первую запись списка.Фокус на первой записи списка

моя схема:

  • радиокнопку
  • Google Карты
  • ListView

, если я не поставил Scrollview ListView очень маленький

Я поставил код это делает:

public class Helper { 

public static void getListViewSize(ListView myListView) { 

    ListAdapter myListAdapter = myListView.getAdapter(); 

    if (myListAdapter == null) { 
     return; 
    } 

    //set listAdapter in loop for getting final size 
    int totalHeight = 0; 

    for (int size = 0; size < myListAdapter.getCount(); size++) { 

     View listItem = myListAdapter.getView(size, null, myListView); 
     listItem.measure(0, 0); 
     totalHeight += listItem.getMeasuredHeight(); 
    } 

    //setting listview item in adapter 
    ViewGroup.LayoutParams params = myListView.getLayoutParams(); 
    params.height = totalHeight + (myListView.getDividerHeight() * (myListAdapter.getCount() - 1)); 
    myListView.setLayoutParams(params); 
    // print height of adapter on log 
    Log.i("height of listItem:", String.valueOf(totalHeight)); 
} 
} 
+2

Почему у вас есть 'ListView' внутри' ScrollView' ??? –

+0

, потому что у меня есть карта карт Google и под списком мест из базы данных в списке. Там лучший способ? Проблема в том, что если я не помещаю listview, список слишком мал, чтобы перемещаться. – user3092292

+0

'ListView' имеет свой собственный механизм прокрутки, никогда не помещающий' ListView' внутри 'ScrollView'. Просто научитесь правильно использовать ListView. В Интернете доступно множество обучающих программ. –

ответ

1

Вы можете переопределить метод isEnabled (int position) в вашем адаптере и вернуть false, чтобы фокус больше не находился в элементе списка.

@Override 
public boolean isEnabled(int position) { 
     return false; 
} 
+0

это не работает нормально – user3092292

+0

Я решил проблему фокуса, обратив внимание на другой компонент, например, в onCreate, который я назвал requestFocus для моего макета. –

+0

Вы можете поместить код? – user3092292

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