2017-03-12 100 views
1

默認情況下,垂直LinearLayout中的視圖從上到下進行測量和佈局,就像從左到右的水平一樣。是否可以顛倒垂直LinearLayout中佈局的視圖的順序?

通常,如果我想讓自己的孩子從底部到頂部進行測量的佈局,我通常使用RelativeLayout,每個孩子都有一個ID,而底部視圖的layout_alignParentBottom設置爲true,其餘有「layout_above」設置爲它們下面的觀點:

<RelativeLayout> 
<View android:id="@+id/bottomView android:layout_alignParentBottom="true" /> 

<View android:id="@+id/secondView android:layout_above="@+id/bottomView " /> 

<View android:id="@+id/thirdView android:layout_above="@+id/secondView " /> 

... 
</RelativeLayout 

但是,這是惱人的設置,如果被添加到另一個佈局可能有問題。

LinearLayout上有這種行爲嗎?我唯一發現的是LayoutDirection,但這似乎屬於RTL方向(水平),所以它不起作用。

+0

爲什麼downvote?我無法在任何地方看到這個問題。 –

+0

您是否試圖以編程方式將視圖添加到linearlayout?如果你這樣做,你可以指定他們的位置 –

+0

考慮依賴LinearLayoutManager,然後簡單地設置反向值爲true http://stackoverflow.com/questions/27727354/linearlayoutmanager-setreverselayout-true-but-items-從底部堆棧 – Alexander

回答

0

剛剛成立的android:重力=「底部」爲您的LinearLayout。

+0

是的,忘了這個。可悲的是,它只適用於POC,而不適用於我目前的複雜佈局。不管怎麼說,還是要謝謝你。 –

+0

非常有趣,你能否給我們舉個例子,爲什麼這不起作用? – Okas

+0

太晚了。我改變了很多,因爲我沒有按照我想要的方式使用它,我選擇了一種不同的方式來展示它。 –

0

如果你想從底部得到的子元素頂部,你可以使用線性佈局是這樣的:

LinearLayout layout = setupLayout(); 
int count = layout.getChildCount(); 
View v = null; 
int i=count; 
while(i!=0) { 
    v = layout.getChildAt(i); 
    //do something with your child element 
    i--; 
} 
+0

首先你會在第一次循環迭代中得到'null',第二,它不是OP詢問 – pskink

+0

不是我所問的。我不需要遍歷孩子。我希望LinearLayout的行爲方向相反。 –