我正在为android开发一个周期表应用程序。但是我无法安装所有118个按钮来表示我的布局中的元素。
这是我到目前为止所写的内容:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:background="#000000"
tools:context=".GridActivity">
<Button
android:layout_width="30dp"
android:layout_height="30dp"
android:text="H"
android:textSize="18dp"
android:textColor="#f2f2f2"
android:background="@drawable/table_button"
android:id="@+id/button"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true" />
<Button
android:layout_width="30dp"
android:layout_height="30dp"
android:text="Li"
android:textSize="18dp"
android:textColor="#f2f2f2"
android:background="@drawable/table_button"
android:id="@+id/button2"
android:layout_below="@+id/button"
android:layout_alignLeft="@+id/button"
android:layout_alignRight="@+id/button" />
<Button
android:layout_width="30dp"
android:layout_height="30dp"
android:textSize="16dp"
android:textColor="#f2f2f2"
android:background="@drawable/table_button"
android:text="Na"
android:id="@+id/button3"
android:layout_below="@+id/button2"
android:layout_alignLeft="@+id/button2" />
<!--And the rest 115 buttons so on ...-->
</RelativeLayout>
这就是Nexus 4的样子。
但是,这种布局在小屏幕设备上给出了问题(最后3个colmns正在离开屏幕等)。在大屏幕平板电脑上,这种布局太小了。请帮我容纳这么多按钮,请提供您想法的示例代码!请帮助我。
提前致谢!
答案 0 :(得分:2)
也许您可以使用LinearLayout作为父级,每行使用linearlayouts,使用权重确保所有按钮的宽度和高度相同,并在空白处放置“空”按钮。这样,无论屏幕尺寸如何,布局都适合重量
编辑:
这是一个简单的例子。你有8行和18列,所以父线性布局的权重为8,所以你添加的每一行的权重都是1,它们都会同样高。
在内部,你有8个垂直线性布局,每个布局的权重为18,每个都有重量为1的元素按钮。
这样,所有按钮都具有相同的高度和重量,您可以保持表格结构,并且它可以适应任何屏幕
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="8" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:orientation="horizontal"
android:weightSum="18" >
<Button
android:id="@+id/button"
android:layout_width="0dp"
android:layout_height="match_parent"
android:background="@drawable/table_button"
android:text="H"
android:layout_weight="1"/>
<!-- 16 of these -->
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:visibility="invisible" />
<Button
android:id="@+id/button2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:background="@drawable/table_button"
android:text="He"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:orientation="horizontal"
android:weightSum="18" >
<!-- ... -->
</LinearLayout>
<!-- ... -->
</LinearLayout>
希望它有所帮助。