2014-01-12 3 views
0

На макете у меня ListViewравна высоте TextView в различном разрешении экрана

<com...DynamicListView 
     android:id="@+id/listview" 
     android:layout_width="fill_parent" 
     android:layout_height="5dp" 
     android:layout_marginLeft="20dp" 
     android:layout_marginRight="20dp" 
     android:layout_marginTop="20dp" 
     android:layout_weight="0.34" 
     android:background="#0000" 
     android:divider="@null" 
     android:dividerHeight="5dp" /> 

, к которому был добавлен 4-й TextView. text_view.xml

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="60dp" 
    android:gravity="center" 
    android:textColor="#000000" 
    android:textSize="@dimen/list_text_size" /> 

Как я могу сделать их все на той же высоте и поднялся на экран на экранах с разным разрешением (без появления свитка)?

Update

public class StableArrayAdapter extends ArrayAdapter<String> { 

public StableArrayAdapter(Context context, int textViewResourceId, List<String> objects) { 
    super(context, textViewResourceId, objects); 
    for (int i = 0; i < objects.size(); ++i) { 
     mIdMap.put(objects.get(i), i); 
    } 
} 

... 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View view = super.getView(position, convertView, parent); 
    ... 
    int myDPValue = 60; 
    myDPValue = (int) ((int) myDPValue * Resources.getSystem().getDisplayMetrics().density); 
    (LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, myDPValue); 
    view.setLayoutParams(params); 

    return view; 
} 
} 
+0

О чем вы говорите? Кто они**? –

+0

пункты в списке (текст) – boroloro

+0

Ваш вопрос непонятен. Пожалуйста, спросите, что вы хотите четко (возможно, добавив изображение - даже ссылку на него); показать, что вы пробовали; если вы получаете ошибки, покажите logcat –

ответ

1

Если я правильно понял вопрос правильно, вы хотите, чтобы регулировать высоту в зависимости от размера экрана различных устройств. Для этого вы можете воспользоваться файлом res/values/dimens.xml, а также тем, как Android выполняет настройки ресурсов. Вы можете переопределить те же самые dimen для каждой плотности или размера экрана, которые вы хотите. Смотрите следующие ссылки для ответов:

+0

Я не понимал, как размеры помогают мне, если первое устройство имеет нормальный размер 60dp, на втором 40dp, на третьем 30dp. – boroloro

+1

Android позволяет создавать различные конфигурации ресурсов в каталоге «res /». (См. Http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources). Таким образом, вы можете получить «res/values-sw320dp/dimens.xml» и «res/values-sw600dp» /dimens.xml ', например. Поэтому, если вы знаете плотность экрана устройств, на которые настроен таргетинг, вы можете определить разные значения для ваших измерений для этих экранов. – anddev84

1

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

+0

нет, listview это то, что мне нужно. Я использую listview, потому что нашел для меня приятное перетаскивание. – boroloro

+0

@boroloro: Что вы подразумеваете под перетаскиванием? – corsair992

+0

http://developer.android.com/intl/ru/guide/topics/ui/drag-drop.html – boroloro

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