我的活动包含14个按钮,我尝试在屏幕上均匀分布。
我也希望它们具有完全相同的大小,尽管其中一个显示3位数字(其余部分有1个数字或2个),另一个有一个图像。
这两个按钮正在解决所有问题,因为他们不想保持相同的大小,即使我将重量设置为1并且我不使用wrap_content
。
中间行略低于其他行,我不得不在第3行使用“隐形按钮”,所以它看起来不错,但我知道它是蹩脚的解决方案。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
style="@style/AppBaseTheme"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity=""
android:animateLayoutChanges="true"
android:background="#f000"
android:baselineAligned="false"
android:gravity="top"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<LinearLayout
android:id="@+id/LinearLayout01"
style="@style/lineralLayout"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="top"
android:orientation="vertical" >
<Button
android:id="@+id/Button0"
style="@style/buttonText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/btn_background_green"
android:focusable="false"
android:onClick="load0"
android:text="@string/btn_0" />
<Button
android:id="@+id/Button2"
style="@style/buttonText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:focusable="false"
android:onClick="load2"
android:text="@string/btn_2" />
<Button
android:id="@+id/Button8"
style="@style/buttonText"
android:layout_height="wrap_content"
android:layout_weight="1"
android:focusable="false"
android:onClick="load8"
android:text="@string/btn_8" />
<Button
android:id="@+id/Button40"
style="@style/buttonText"
android:layout_height="wrap_content"
android:layout_weight="1"
android:focusable="false"
android:onClick="load40"
android:text="@string/btn_40"
android:textAppearance="@style/buttonText" />
<Button
android:id="@+id/ButtonQuestion"
style="@style/buttonText"
android:layout_height="wrap_content"
android:layout_weight="1"
android:focusable="false"
android:onClick="loadDontKnow"
android:text="@string/btn_question"
android:textAppearance="@style/buttonText" />
</LinearLayout>
<LinearLayout
android:id="@+id/LinearLayout2"
style="@style/lineralLayout"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="top"
android:orientation="vertical" >
<Button
android:id="@+id/Button1_2"
style="@style/buttonText"
android:layout_height="wrap_content"
android:layout_weight="1"
android:focusable="false"
android:onClick="load1_2"
android:text="@string/btn1_2" />
<Button
android:id="@+id/Button3"
style="@style/buttonText"
android:layout_height="wrap_content"
android:layout_weight="1"
android:focusable="false"
android:onClick="load3"
android:text="@string/btn_3" />
<Button
android:id="@+id/Button13"
style="@style/buttonText"
android:layout_height="wrap_content"
android:layout_weight="1"
android:focusable="false"
android:onClick="load13"
android:text="@string/btn_13" />
<Button
android:id="@+id/Button100"
style="@style/buttonText"
android:layout_height="wrap_content"
android:layout_weight="1"
android:focusable="false"
android:onClick="load100"
android:paddingLeft="2dp"
android:paddingRight="2dp"
android:text="@string/btn_100" />
<ImageButton
android:id="@+id/ButtonCoffee"
style="@style/buttonText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_weight="1"
android:adjustViewBounds="false"
android:contentDescription="@string/coffee_descr"
android:cropToPadding="true"
android:focusable="false"
android:paddingLeft="2dp"
android:paddingRight="2dp"
android:scaleType="center"
android:src="@drawable/coffeepng"
android:text="@string/btn_13"
android:visibility="visible" />
</LinearLayout>
<LinearLayout
android:id="@+id/LinearLayout3"
style="@style/lineralLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="top"
android:orientation="vertical" >
<Button
android:id="@+id/Button1"
style="@style/buttonText"
android:layout_height="wrap_content"
android:layout_weight="1"
android:focusable="false"
android:onClick="load1"
android:text="@string/btn_1" />
<Button
android:id="@+id/Button5"
style="@style/buttonText"
android:layout_height="wrap_content"
android:layout_weight="1"
android:focusable="false"
android:onClick="load5"
android:text="@string/btn_5"
android:typeface="sans" />
<Button
android:id="@+id/Button20"
style="@style/buttonText"
android:layout_height="wrap_content"
android:layout_weight="1"
android:focusable="false"
android:onClick="load20"
android:text="@string/btn_20" />
<Button
android:id="@+id/ButtonInfinity"
style="@style/buttonText"
android:layout_height="wrap_content"
android:layout_weight="1"
android:focusable="false"
android:onClick="loadInfinity"
android:text="@string/btn_infinity" />
<Button
android:id="@+id/button4"
style="@style/Invisiblebutton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/btn_0"
android:visibility="invisible" />
</LinearLayout>
</LinearLayout>
以及这些按钮的样式:
<style name="buttonText" parent="@android:style/TextAppearance">
<item name="android:textColor">#FFFFFF</item>
<item name="android:textSize">35sp</item>
<item name="android:typeface">sans</item>
<item name="android:textStyle">bold</item>
<item name="android:background">@drawable/btn_background_green</item>
<item name="android:layout_width">match_parent</item>
<item name="android:layout_marginTop"> 5dp </item>
<item name="android:layout_marginBottom">5dp </item>
</style>
<style name="Invisiblebutton" parent="@android:style/TextAppearance">
<item name="android:textColor">#000000</item>
<item name="android:textSize">35sp</item>
<item name="android:typeface">sans</item>
<item name="android:textStyle">bold</item>
<item name="android:background">@drawable/invisible_btn</item>
<item name="android:layout_width">match_parent</item>
<item name="android:layout_marginTop"> 5dp </item>
<item name="android:layout_marginBottom">5dp </item>
</style>
答案 0 :(得分:1)
所以,我认为你几乎拥有它。如果对父布局使用属性权重,则可以精确定位元素。例如:
<LinearLayout
android:id="@+id/LinearLayout01"
style="@style/lineralLayout"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="top"
android:orientation="vertical"
android:weightSum="5" >
<Button
android:id="@+id/Button0"
style="@style/buttonText"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="@drawable/btn_background_green"
android:focusable="false"
android:onClick="load0"
android:text="@string/btn_0" />
<Button
android:id="@+id/Button2"
style="@style/buttonText"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:focusable="false"
android:onClick="load2"
android:text="@string/btn_2" />
<Button
android:id="@+id/Button8"
style="@style/buttonText"
android:layout_height="0dp"
android:layout_weight="1"
android:focusable="false"
android:onClick="load8"
android:text="@string/btn_8" />
<Button
android:id="@+id/Button40"
style="@style/buttonText"
android:layout_height="0dp"
android:layout_weight="1"
android:focusable="false"
android:onClick="load40"
android:text="@string/btn_40"
android:textAppearance="@style/buttonText" />
<Button
android:id="@+id/ButtonQuestion"
style="@style/buttonText"
android:layout_height="0dp"
android:layout_weight="1"
android:focusable="false"
android:onClick="loadDontKnow"
android:text="@string/btn_question"
android:textAppearance="@style/buttonText" />