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

Popular posts from this blog

python - Selenium remoteWebDriver (& SauceLabs) Firefox moseMoveTo action exception -

html - How to custom Bootstrap grid height? -

transpose - Maple isnt executing function but prints function term -