2012-03-15 2 views
1

Я пытаюсь сделать приложение для Android, которое имеет 2 макета, один для телефонов и один для планшетов.Отображение различного содержимого в зависимости от размера экрана и макета в android

У меня есть два макета, но мне трудно заполнить их контентом. Макет телефона (res/layout) состоит из 1 вида списка, которое заполняется из базы данных.

Планшет планшета (res/layout-large) имеет 5 отдельных списков, которые необходимо заполнить.

В принципе мне нужно каким-то образом сделать это:

if(screensize != large) { 
    populateSingleListView(); 
} 
else { 
    populateMultipleListViews(); 
} 

Я попытался, используя следующий код, чтобы сделать это, но это, кажется, не определяет размер экрана в эмуляторе

(getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE) 

любые идеи для решения?

Благодаря

Chris

ответ

0
public void populateList() { 
    ListView list1 = (ListView) getView().findViewById(R.id.list1); 
    ListView list2 = (ListView) getView().findViewById(R.id.list2); 

    if(list1 != null) { 
     // Do sth 
    } 

    if(list2 != null) { 
     // Sth else 
    } 
} 

Так в маленьком экране, вы должны заполнить и песни1 большого экрана вы оба заселены.

+0

Благодаря человеку, даст ему идти – Chrisrs2292

+0

Вы можете. Если он работает, тогда нажмите, чтобы принять в качестве ответа для дальнейшего использования. – Calvin

+0

Хмм думаю, проблема связана с моим эмулятором, по какой-то причине он не загружает ресурсы из layout-large = [EDIT: только что зафиксировал мой avd, и это, похоже, работает спасибо :) – Chrisrs2292

0

Я бы рекомендовал использовать фрагменты (и класс для каждого) для каждого вида списка.

В макете телефона будет один, и вы можете настроить планшет планшета, содержащий все из них.

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

0

попытаться обнаружить его с помощью высоты дисплея & ширина

DisplayMetrics metrix = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrix); 
displayHeigh = metrix.heightPixels; 
displayWidth = metrix.widthPixels; 

if(displayHeigh > displayWidth){ // or something else 
    // for phone 
}else{ 
    // for tablet 
} 
Смежные вопросы