2016-03-03 46 views
3

我試圖使用PercenRelativeLayout的ListView,但它亙古不變的作品, 高度和寬度百分比被忽略,並且沒有被顯示成列表視圖。它只適用於棉花糖如何使用PercenRelativeLayout的ListView項

這裏是列表項XML

<?xml version="1.0" encoding="utf-8"?> 
<android.support.percent.PercentRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
<ImageView 
    android:background="#d20404" 
    android:id="@+id/test_image_id" 
    android:layout_width="match_parent" 
    android:layout_height="300dp" /> 

<TextView 
    android:background="#000" 
    android:text="sfgfashdsfg" 
    android:layout_below="@+id/test_image_id" 
    app:layout_heightPercent="50%" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" /> 

</android.support.percent.PercentRelativeLayout> 

我有我開這個問題谷歌github

+0

請提供[MCVE]展示您的問題。這將包括您使用'PercentRelativeLayout'的佈局以及您使用該佈局的代碼。 – CommonsWare

+0

感謝您的建議 –

回答

0

一個樣本項目。 答案是

您的ListView行項目的高度未充分指定。

第一個孩子說要取行高的60%(注意 這是高度,而不是aspectRatio),第二個孩子說 它想佔行高的10%。但是沒有任何東西告訴ListView整個行想要如何。因此,它結束了高度爲0

注意,高度= match_parent的語義不ListView的工作 行,如果這個工程在任何一個特定的Android平臺版本 (用於不過您可得多說,它的工作原理),這純屬偶然。

https://code.google.com/p/android/issues/detail?id=202479

0

我遇到了Android K和Android的L.同樣的問題

百分比佈局不會機器人M.之前正常工作的原因是,它們所依賴的大小提示在測量步驟中提供。版本的Android M之前大多數佈局將提供尺寸暗示0

將您%相對佈局相對佈局和程序根據你的設備的高度設置的意見高度。

這不是一個非常優雅的解決方案,但它爲我工作。

XML代碼:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical"> 

<ImageView 
    android:id="@+id/test_image_id" 
    android:layout_width="match_parent" 
    android:layout_height="300dp" 
    android:background="#d20404" /> 

<TextView 
    android:id="@+id/textview" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/test_image_id" 
    android:background="#000" 
    android:text="sfgfashdsfg" /> 

</RelativeLayout> 

Java代碼:

// to get the height of the screen 
int height = getWindowManager().getDefaultDisplay().getHeight(); 

// to set height to each textview to 50% of screen 
textView1.getLayoutParams().height = (int) (height * 0.50); 
相關問題