java - Using layoutparams outside oncreate method doesn't work -
i trying change linearlayout height 50% of parent layout when click button. trired linearlayout.layoutparams doesn't change height of layout if call when buttonclicked method outside oncreate . if keep linearlayout.layoutparams inside oncreate works. how can when click button?
this code works :
public class viewreport extends appcompatactivity { button button; linearlayout layout; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_view_report); button=(button) findviewbyid(r.id.button); layout=(linearlayout) findviewbyid(r.id.fold); final linearlayout.layoutparams lp = (linearlayout.layoutparams) layout.getlayoutparams(); lp.height = 0; lp.width=linearlayout.layoutparams.match_parent; lp.weight=0.5f; } } this code doesn't work :
public class viewreport extends appcompatactivity { button button; linearlayout layout; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_view_report); button=(button) findviewbyid(r.id.button); layout=(linearlayout) findviewbyid(r.id.fold); } public void click(view view) { toast.maketext(getapplicationcontext(),"tapped",toast.length_long).show(); linearlayout.layoutparams lp = (linearlayout.layoutparams) layout.getlayoutparams(); lp.height = 0; lp.width=linearlayout.layoutparams.match_parent; lp.weight=0.5f; } } layout xml
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="me.imbishal.imageblur.viewreport" android:weightsum="1"> <linearlayout android:id="@+id/fold" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:background="@drawable/profilepageback" android:orientation="vertical"> <edittext android:id="@+id/edittext4" android:layout_width="match_parent" android:layout_height="60dp" android:layout_marginbottom="3dp" android:background="@drawable/my_button" android:ems="10" android:inputtype="textpersonname" /> <edittext android:id="@+id/edittext3" android:layout_width="match_parent" android:layout_height="60dp" android:layout_marginbottom="5dp" android:background="@drawable/my_button" android:ems="10" android:inputtype="textpersonname" /> <button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:background="@drawable/just_border" android:onclick="click" android:text="button" /> </linearlayout>
you have changed layoutparams haven't set them. add line
layout.setlayoutparams(lp);
Comments
Post a Comment