好吧,所以我目前正在使用TableLayout进行活动的布局,并且在我想要的地方找到该死的表并没有真正做到这一点。
以下是现在的截图:
目前我有三个目标:
让包含EditText和ToggleButton的LinearLayout在屏幕上水平居中(暂时还没有这样做)
将表格布局(其中包含三角形的6个按钮)水平居中于LL 下方而不会将其分解为3个LinearLayouts
任何关于如何完成上述任何或所有目标的见解都会受到赞赏,因为我基本上已经耗尽了我自己的xml布局知识,并且宁愿避免以编程方式进行,我通常在这种情况下做的事情
作为参考,这里是上面看到的当前布局的xml(xml版本行 那里,但它只是不想在这篇文章中正确复制):
<com.hinodesoftworks.lordkat.widgets.TitleBar
android:id="@+id/calc_titlebar"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/calc_input_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" >
<EditText
android:id="@+id/calc_input"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="@string/txt_trig_hint" />
<ToggleButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:background="@drawable/button_selector"
android:paddingBottom="5dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="5dp"
android:textOff="@string/txt_trig_toggle_radians"
android:textOn="@string/txt_trig_toggle_degrees" />
</LinearLayout>
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:weightSum="3" >
<TableRow
android:layout_gravity="center_horizontal"
android:layout_weight="1" >
<Button
android:id="@+id/trig_sine_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="2dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="1dp"
android:layout_marginTop="2dp"
android:background="@drawable/button_selector"
android:paddingBottom="10dp"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingTop="10dp"
android:text="@string/txt_trig_sine_button" />
<Button
android:id="@+id/trig_secant_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="2dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="1dp"
android:layout_marginTop="2dp"
android:background="@drawable/button_selector"
android:paddingBottom="10dp"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingTop="10dp"
android:text="@string/txt_trig_secant_button" />
</TableRow>
<TableRow
android:layout_gravity="center_horizontal"
android:layout_weight="1" >
<Button
android:id="@+id/trig_cosine_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="2dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="1dp"
android:layout_marginTop="2dp"
android:background="@drawable/button_selector"
android:paddingBottom="10dp"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingTop="10dp"
android:text="@string/txt_trig_cosine_button" />
<Button
android:id="@+id/trig_cosecant_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="2dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="1dp"
android:layout_marginTop="2dp"
android:background="@drawable/button_selector"
android:paddingBottom="10dp"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingTop="10dp"
android:text="@string/txt_trig_cosecant_button" />
</TableRow>
<TableRow
android:layout_gravity="center_horizontal"
android:layout_weight="1" >
<Button
android:id="@+id/trig_tangent_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="2dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="1dp"
android:layout_marginTop="2dp"
android:background="@drawable/button_selector"
android:paddingBottom="10dp"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingTop="10dp"
android:text="@string/txt_trig_tangent_button" />
<Button
android:id="@+id/trig_cotangent_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="2dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="1dp"
android:layout_marginTop="2dp"
android:background="@drawable/button_selector"
android:paddingBottom="10dp"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingTop="10dp"
android:text="@string/txt_trig_cotangent_button" />
</TableRow>
</TableLayout>
<TextView
android:id="@+id/calc_results_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/txt_trig_results_label" />
<TextView
android:id="@+id/calc_results"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="123.456" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
答案 0 :(得分:1)
1-)要使EditText和ToggleButton在屏幕中水平居中,请使用
机器人:重力= “CENTER_HORIZONTAL”
而不是“android:layout_gravity =”center_horizontal“
2-)如答案(1)所示,在表中水平居中,请使用 “android:gravity =”center_horizontal“
3-)要使所有按钮都具有相同的大小而不使用边距和填充之外的绝对值,请使用“android:stretchColumns =”0,1“”来拉伸列0和1。 使用此属性时,不必使用绝对值。因此得到的代码如下:
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:stretchColumns="0,1"
>
<TableRow>
<Button
android:id="@+id/trig_sine_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_launcher"
android:text="txt_trig_sine_button" />
<Button
android:id="@+id/trig_secant_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_launcher"
android:text="txt_trig_secant_button" />
</TableRow>
...
答案 1 :(得分:0)
尝试使用GridLayout,它的内存效率更高,没有嵌套容器,非常适合这种类似网格的设计。