2015-05-29 6 views
1

У меня есть пользовательский вид, который я хочу отобразить в табло. Вот то, что XML выглядит следующим образом:Как пользовательское представление может определить максимальную высоту/ширину в таблетке

..... 
 
<TableRow 
 
     android:layout_width="match_parent" 
 
     android:layout_height="match_parent" 
 
     android:layout_weight=".4"> 
 

 
     <com.blah.MyCustomView 
 
      android:layout_width="fill_parent" 
 
      android:layout_height="fill_parent" 
 
      android:id="@+id/myCustomView"/> 
 
    </TableRow> 
 
.....

Моя проблема в том, что я не могу понять, как, сколько вертикального и горизонтального пространства я должен рисовать. Canvas.getHeight() и canvas.getWidth из onDraw (холст холста) возвращает высоту фрагмента.

Как определить высоту максимальной высоты табло, содержащего customView? Thanks

ответ

0

Используйте getMeasuredWidth() и getMeasuredHeight() на вид вы хотите.

+0

Фактически он отвечает на него (или, по крайней мере, делает хорошую попытку). –

+0

вызов getMeasuredWidth()/getMeasuredHeight() в пользовательском представлении возвращает высоту/ширину фрагмента, а не tablerow, - и представление не учитывает границы tablerow, которые предполагается содержать внутри. – nkhan

0

Вы получаете размер фрагмента, так как android_width и android_height установлены в match_parent и fill_parent в вашем XML-макете. Попробуйте изменить все на wrap_content.
fill_parent, хотя он действительно работает, устарел. Попробуйте использовать match_parent с этого момента.

Смежные вопросы