Android GridLayout具有固定宽度列但调整为设备宽度

时间:2014-06-13 19:05:16

标签: android android-gridlayout column-width

在下面的示例中,我尝试为GridLayout强制使用固定的列宽,其中列的宽度由设备宽度驱动。它有效,但我不确定是否有更好的方法或我错过了任何副作用。

GridLayout的:

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/twopane"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:columnCount="8"  >

    <TextView android:id="@+id/grid_id_col1" android:text="col1"/>
    <TextView android:id="@+id/grid_id_col2" android:text="col2" />
    <TextView android:id="@+id/grid_id_col3" android:text="col3" />
    <TextView android:id="@+id/grid_id_col4" android:text="col4" />
    <TextView android:id="@+id/grid_id_col5" android:text="col5" />
    <TextView android:id="@+id/grid_id_col6" android:text="col6" />
    <TextView android:id="@+id/grid_id_col7" android:text="col7" />
    <TextView android:id="@+id/grid_id_col8" android:text="col8" />

<!-- for ease of discussion I left out the actual UI layout -->
</GridLayout>

在活动中计算宽度:

DisplayMetrics displayMetrics = getResources().getDisplayMetrics();

float dpWidth = displayMetrics.widthPixels / displayMetrics.density;
Integer colWidth = (int) (dpWidth / 8);

然后设置列大小:

TextView colTv = (TextView) findViewById(R.id.grid_id_col1);
colTv.setWidth( colWidth );
colTv.setVisibility(View.INVISIBLE);

等其他专栏。使用这种方法,我可以对网格结构进行一些控制,并且对于不同的设备也是如此。取向。

谢谢, 麦克

0 个答案:

没有答案