2015-03-12 4 views
1

Я реализую RecyclerView, мне требуется ширина фрагмента, так как он напрямую влияет на элементы в RecyclerView. Где и как лучше всего это сделать? Я также ищу решение, которое удовлетворяет изменения ориентации (портрет/пейзаж), и оно может перерисовываться в соответствии с этими изменениями.RecyclerView: получить ширину/высоту фрагмента

Есть два типа способов получать ширину, что я знаю:..

  • GetView() getViewTreeObserver() addOnGlobalLayoutListener ...
  • MyOnResizeListener orlResized = новый MyOnResizeListener() {... };

Я создаю свой адаптер в onViewCreated(), и два вышеуказанных метода запускаются после создания представлений элементов адаптера, что бесполезно.

Есть ли хороший способ решения этой проблемы?

ответ

0

у вас есть два варианта:

  • создать адаптер внутри GlobalLayoutListener; или
  • используйте предопределенную информацию о вашем проекте, чтобы рассчитать размер. Например,: фрагмент находится в контейнере внутри основного вида деятельности, который простирается до всей ширины и имеет поля 12dp по бокам. Затем в течение onCreateView вы можете check the device screen width, get the value of 12dp и рассчитать frgWidth = screenWidth - (2 * dp12);