Set child layout width programmatically In ANDROID?
android, android-layout, android-widget
Solution
Can you do this: Set the id to this child linear layout and then:
LinearLayout linLayout = (LinearLayout) findViewById(R.id.yourID);
LinearLayout .LayoutParams layoutParams= new
LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT);//or whatever , you can set the width and height programmatically and then setLayoutParams()
EDIT:
I see you already tried this, sorry. But there are two linear layouts no ?
Problem
In my Code I have a XML file having multiple child layouts. Aand I just want to set one of these child layout's width programmatically according to device's screen width. till now I had tried Layout params, setparam, and other methods but it shows null pointer exception on getting layout id. my parent layout is a Relative Layout, and 1st Child Layout is a Linear Layout("for this layout I need to change width") ``` <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/parentlayout" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:id="@+id/childlayout" android:layout_width="250dip" android:layout_height="fill_parent" android:orientation="vertical" android:background="#153746"> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:background="@drawable/sub_title" android:gravity="center_vertical" > <TextView android:id="@+id/menu_header_label" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textStyle="bold" android:text="asd" android:textColor="#ffffff" android:layout_marginLeft="10dip" /> <ImageView android:id="@+id/menu_header" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" /> </LinearLayout> <ListView android:id="@+id/menu_listview" android:layout_width="fill_parent" android:layout_height="wrap_content" android:divider="@android:color/darker_gray" android:dividerHeight="1dip" android:scrollingCache="false" /> </LinearLayout> <FrameLayout android:id="@+id/overlay" android:layout_width="fill_parent" android:layout_height="fill_parent" > </FrameLayout> </LinearLayout> ``` Java Code:- ``` public class SlideMenu extends LinearLayout { // keys for saving/restoring instance state public final static String KEY_MENUSHOWN = "menuWasShown"; private final static String KEY_STATUSBARHEIGHT = "statusBarHeight"; private final static String KEY_SUPERSTATE = "superState"; // Display display = ((WindowManager) getWindowToken()).getDefaultDisplay(); // int width = display.getWidth(); // deprecated // int height = display.getHeight(); // deprecated // float layWidth = (width*70)/100; // //// LinearLayout view= (LinearLayout)findViewById(R.id.childlayout); //// LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) view.getLayoutParams(); //// params.width = 130; //// view.setLayoutParams(params); // view.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, theSizeIWant)); public static class SlideMenuItem { public int id; public Drawable icon; public String label; } ``` here is my code snippet and i comment the part what i tried so far and get any fine result..``