问题
I have searched google and stackoverflow thoroughly, but the only answer I get is: set each Tablerow
with layout weight = "1"
. This doesnt work.
Now I have eight rows in a TableLayout
, and each contains 5 LinearLayouts
. Each of the LinearLayouts contains 2 TextViews
, and the FontSizes
vary from TextView
to TextView
.
It turns out that the TableRows vary in height, depending on the Fontsizes of the contained TextViews
.
Strangely enough, it doesnt have any impact on the layout whether I set the layout_height of the TableRows to "0dp" or to "match_parent" or "fill_parent".
How can I force the TableRows
to have the same height? I dont want to use a specific pts value as height, because the tableRows must divide the whole screen equally between themselves.
Here is part of the xml, the actual file is huge:
<TableLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="6"
android:weightSum="8"
tools:context=".MainActivity" >
<TableRow
android:layout_width="match_parent"
android:layout_weight="1"
tools:context=".MainActivity">
<LinearLayout
android:clickable="true"
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/btnmargintop"
android:layout_marginBottom="@dimen/btnmarginbot"
android:layout_marginLeft="@dimen/btnmarginleft"
android:layout_marginRight="@dimen/btnmarginright"
android:layout_weight="1"
android:background="@drawable/bg" >
<myapp.TypefacedTextView
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="@integer/layoutweight1"
android:layout_gravity="center"
stevens:typeface="myfont.otf"
android:clickable="false"
android:textSize="@dimen/fontsize1" />
<myapp.TypefacedTextView
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="@integer/layoutweight2"
android:layout_gravity="center"
stevens:typeface="myfont.otf"
android:clickable="false"
android:textSize="@dimen/fontsize2" />
</LinearLayout>
回答1:
You are probably letting the layout of your tab to automatically adjust to the size of the content inside. There are two ways, to settle things down:
- Make sure all the elements share the same size - that being said, don't worry about the table as a whole, just make sure, that the dimensions of the elements inside are the same
- Or simply set the height of the parent layout and don't let the elements make a difference. Problem with this solution is, that if you get bigger inside, you'll be out of space, so you may want to stick with the first option
来源:https://stackoverflow.com/questions/15137674/android-how-to-force-tablerows-to-have-the-same-height