2016-06-24 17 views
0

change framelayout Höhe, Breite, Schwerkraft programmgesteuert?Kind ändern framelayout Höhe, Breite, Schwerkraft programmgesteuert?

Ich habe als Eltern und framelayout als Kind Linearlayout jetzt habe ich die Höhe und Breite von framelayout ändern möchten programmatisch

Code Ich habe versucht, aber hat keinen Einfluss auf alle

public void frame_params(FrameLayout bottomFrameLayout, int weight, int height) { 
    bottomFrameLayout = new FrameLayout(context); 
    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(weight, height); 
    lp.gravity = Gravity.BOTTOM | Gravity.LEFT; 
    bottomFrameLayout.setLayoutParams(lp); 

} 

xml

<LinearLayout 
     android:orientation="horizontal" 
     android:id="@+id/relativelayout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_above="@+id/hv_effect" 
     android:layout_below="@+id/effect_hedaer_toolbar"> 

     <FrameLayout 
      android:id="@+id/FrameLayout" 
      android:layout_width="280dp" 
      android:layout_height="300dp" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentLeft="true" 
      android:layout_centerInParent="true" 
      android:layout_gravity="bottom|left"> 
</FrameLayout> 
</Linearlayout> 

Antwort

0

Ich glaube, diese Linie ist Ihr Problem:

bottomFrameLayout = new FrameLayout(context); 

Im frame_params Methode erhalten Sie ein FrameLayout. Aber dann, Instanziieren Sie eine NEUE mit dieser Linie. Das FrameLayout innerhalb des LinearLayout wird also auf die gleiche Weise fortgesetzt, da Sie es nicht ändern, Sie ein neues FrameLayout erstellen und die Parameter dafür festlegen. Versuchen Sie einfach, die oben genannte Linie zu entfernen, wie folgt aus:

public void frame_params(FrameLayout bottomFrameLayout, int weight, int height) { 
    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(weight, height); 
    lp.gravity = Gravity.BOTTOM | Gravity.LEFT; 
    bottomFrameLayout.setLayoutParams(lp); 

} 

Und dann passieren die richtige FrameLayout (die mit der id „FrameLayout“, wie in Ihrem xml), sollte es funktionieren.

Lassen Sie es mich wissen, wenn es funktioniert hat, und wenn ja, denken Sie daran, upvote/wählen Sie als die richtige Antwort, Prost:)

Verwandte Themen