Страница 1 из 1

Проблема с разметкой. Веса в LinearLayout

Добавлено: 03 окт 2014, 13:15
Saint
Разметка моей главной активности:

Код: Выделить всё

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:baselineAligned="false"
android:id="@+id/mainLinearLayout">

<GridView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:columnCount="1"
    android:layout_weight="1"
    android:id="@+id/gvMain">
</GridView>

<it.sephiroth.android.library.widget.HListView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id = "@+id/hlvMain"
    />
</LinearLayout>
Так вот, не смотря на то, что для GridView присвоен вес 1, а для HListView не присвоен (т.е. 0), то GridView вдавливается куда-то в небо (адаптер присвоен одинаковый).

Код: Выделить всё

public void setData(DataParadigma data){
    this.data = data;
    adapterAd = new AdapterAd(this, data.ads);

    hlvMain.setAdapter(adapterAd);
    gvMain.setAdapter(adapterAd);
}
а выглядит так - http://data3.floomby.com/files/share/3_ ... FhcS4A.jpg

А если жестко задать высоту, то отображается нормально, но не универсально:

Код: Выделить всё

 <GridView
    android:layout_width="match_parent"
    android:layout_height="159dp"

    android:id="@+id/gvMain"/>

<it.sephiroth.android.library.widget.HListView
    android:layout_width="match_parent"
    android:layout_height="83dp"
    android:id = "@+id/hlvMain"
    />
внешний вид - http://data3.floomby.com/files/share/3_ ... XZejqQ.jpg

А если поменять и вес дать другому компоненту, то наоборот первый сожмется до нуля. Как так? Если вес дать обоим, то просто поделять экран в соответствии с долей веса..

Re: Проблема с разметкой. Веса в LinearLayout

Добавлено: 07 дек 2014, 01:34
ANdriy123456
если я верно понял суть проблемы, то должно быть так:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:baselineAligned="false"
android:id="@+id/mainLinearLayout">

<GridView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:columnCount="1"
android:layout_weight="1"
android:id="@+id/gvMain">
</GridView>

<it.sephiroth.android.library.widget.HListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id = "@+id/hlvMain"
/>
</LinearLayout>