How to get fragment width?

13,798

you are calling getWidth() too early. Try below mentioned code. Hope it helps you

view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
        mScrollView.post(new Runnable() {
            public void run() {
                view.getHeight(); //height is ready
            }
        });
    }
});
Share:
13,798
Folyd
Author by

Folyd

Updated on June 12, 2022

Comments

  • Folyd
    Folyd almost 2 years

    Here is my layout.I need to get the width in CategoryFragment.

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal" >
    
        <LinearLayout
            android:id="@+id/category_list"
            android:layout_width="150dp"
            android:layout_height="match_parent"
            android:background="@color/white_background"
            android:orientation="vertical" >
    
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:padding="10dp"
                android:text="@string/pianodule_list"
                android:textSize="16sp" />
    
            <com.handmark.pulltorefresh.library.PullToRefreshListView
                android:id="@id/refreshable_listview"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:choiceMode="singleChoice"
                android:descendantFocusability="beforeDescendants"
                android:divider="@null" />
        </LinearLayout>
    
        <View
            android:layout_width="0.1dp"
            android:layout_height="match_parent"
            android:background="@color/divider_line" />
    
        <fragment
            android:name="com.srefu.frag.CategoryFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:tag="category" />
    </LinearLayout>
    

    so in onViewCreated() of CategoryFragment I try several way to achieve it but all not work.

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        View v = view;
        // View v = getView(); 
        int w1 = v.getWidth(); //return 0
        int w2 = v.getLayoutParams().width; //return NullPointerException
        int w3 = v.getMeasuredWidth(); //return 0
    }
    

    how should i do can i get width of fragment?Any help will is appreciated .Thanks. :)