gpt4 book ai didi

android - 如何使用权重通过 TableLayout 以编程方式排列 Gridview 项目

转载 作者:行者123 更新时间:2023-11-29 16:07:56 30 4
gpt4 key购买 nike

我正在开发数独求解器应用程序。我希望布局在 9 个 Gridview 中具有 9x9 TextView。我想在它们下面放两个按钮(解决,清除)。我已经做到了,但它可能不适用于小型设备(看不到按钮, GridView 变成了不适合屏幕的可滚动)

下面是我如何将 Textview 添加到 Gridview

gridView = (GridView) findViewById(R.id.gridView1);
String[] arrayEmpty = new String[] {"", "", "", "", "", "", "", "", ""};
ArrayList<String> listEmpty = new ArrayList<String>(Arrays.asList(arrayEmpty));
gridView.setAdapter(new ArrayAdapter<String>(this,R.layout.list_item,list));

这是我的 Layout.XML

<?xml version="1.0" encoding="utf-8"?>

<TableRow android:id="@+id/tableRow1"
android:layout_width="match_parent"
android:background="#999999"
android:layout_weight="1"
android:layout_height="match_parent">

<GridView
android:id="@+id/gridView1"
android:clickable="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:background="#5C5C5C"
android:layout_weight="1"
android:numColumns="3" >
</GridView>

<GridView
android:id="@+id/gridView2"
android:clickable="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:background="#5C5C5C"
android:layout_weight="1"
android:numColumns="3" >
</GridView>

<GridView
android:id="@+id/gridView3"
android:clickable="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:background="#5C5C5C"
android:layout_weight="1"
android:numColumns="3" >
</GridView>

<TableRow android:id="@+id/tableRow2"
android:layout_width="match_parent"
android:background="#999999"
android:layout_weight="1"
android:layout_height="match_parent">

<GridView
android:id="@+id/gridView4"
android:clickable="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:background="#5C5C5C"
android:layout_weight="1"
android:numColumns="3" >
</GridView>

<GridView
android:id="@+id/gridView5"
android:clickable="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:background="#5C5C5C"
android:layout_weight="1"
android:numColumns="3" >
</GridView>

<GridView
android:id="@+id/gridView6"
android:clickable="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:background="#5C5C5C"
android:layout_weight="1"
android:numColumns="3" >
</GridView>

<TableRow android:id="@+id/tableRow3"
android:layout_width="match_parent"
android:background="#999999"
android:layout_height="match_parent"
android:layout_weight="1"
android:layout_marginBottom="15dp">

<GridView
android:id="@+id/gridView7"
android:clickable="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:background="#5C5C5C"
android:layout_weight="1"
android:numColumns="3" >
</GridView>

<GridView
android:id="@+id/gridView8"
android:clickable="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:background="#5C5C5C"
android:layout_weight="1"
android:numColumns="3" >
</GridView>

<GridView
android:id="@+id/gridView9"
android:clickable="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:background="#5C5C5C"
android:layout_weight="1"
android:numColumns="3" >
</GridView>

<TableRow android:layout_weight="1" android:layout_height="match_parent">
<Button
android:id="@+id/solve_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:layout_weight="1"
android:text="@string/solve" />
<Button
android:id="@+id/clear_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:layout_weight="1"
android:text="@string/_clear" />
</TableRow>

这是我的截图 enter image description here

但这就是我需要我的布局与所有设备一起使用的东西。也许我应该使用权重,但我不知道如何

enter image description here

最佳答案

这里有一个技巧:对于完全统一的表格或网格,您根本不需要 TableView 或 GridView。只需将所有内容放入 LinearLayout 中,size=0 且 layoutWeight=1。 size=0 似乎有悖常理,但与 layoutWeight=1 相结合,它具有为所有子部件提供完全相同大小的效果,而不管它们的内容如何。

所以做这样的事情:

<!-- Outer container; a vertical layout that fills the screen -->
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<!-- first row -->
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1">
<!-- contents of the first row -->
<!-- first item in first row -->
<View
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1" />
<!-- second item in first row -->
<View
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1" />
<!-- third item in first row -->
<View
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1" />
</LinearLayout>
<!-- second row -->
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1">
<!-- contents of the second row. -->
<!-- etc -->
</LinearLayout>
<!-- third row -->
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1">
<!-- contents of the third row -->
<!-- etc -->
</LinearLayout>
<Button android:id="@+id/solveButton"
android:layout_width="fill_parent"
android:layout_width="wrap_content" />
<Button android:id="@+id/clearButton"
android:layout_width="fill_parent"
android:layout_width="wrap_content" />
</LinearLayout>

关于android - 如何使用权重通过 TableLayout 以编程方式排列 Gridview 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16389500/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com