How to get the width of the fragment?

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 () from CategoryFragment I try several ways to achieve it, but all do 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 can I do this, can I get the width of the fragment? Any help would be appreciated. Thanks.:)

+5
source share
1 answer

you call getWidth () too early. Try the code below. Hope this helps you.

 view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { mScrollView.post(new Runnable() { public void run() { view.getHeight(); //height is ready } }); } });` 
+12
source

Source: https://habr.com/ru/post/1200717/


All Articles