29

Ich verwende PercentRelativeLayout von Android Prozent Support-Paket. das ist was ich in meinem Layout habe.PercentRelativeLayout, wie die Höhe programmgesteuert

<android.support.percent.PercentRelativeLayout 
    android:id="@+id/view_parent" 
    app:layout_heightPercent="68%" android:visibility="invisible" 
    android:layout_width="match_parent" 
    android:background="@color/mountain_meadow" android:layout_alignParentTop="true" 
    android:layout_height="wrap_content"> 


    <View android:id="@+id/view_child" android:layout_width="match_parent" app:layout_heightPercent="30%" 
     android:layout_alignParentBottom="true" 
     /> 

</android.support.percent.PercentRelativeLayout> 

Ich will die Höhe von view_child programmatisch ändern. Wie kann ich das mit PercentRelativeLayout.LayoutParams oder auf andere Weise tun.

Antwort

65

Möchten Sie einen neuen Prozentwert eingeben? Wenn ja, müssen Sie:

View view = findViewById(R.id.view_child); 
PercentRelativeLayout.LayoutParams params = (PercentRelativeLayout.LayoutParams) view.getLayoutParams(); 
// This will currently return null, if it was not constructed from XML. 
PercentLayoutHelper.PercentLayoutInfo info = params.getPercentLayoutInfo(); 
info.heightPercent = 0.60f; 
view.requestLayout(); 
+0

Wie setzen Sie einen anderen Wert ohne Prozent? Zum Beispiel, marginBottom in dp, mit Prozent-Layout-Parameter? – Gilian

+0

view.requestLayout(); cooler Typ. – msecilmis

Verwandte Themen