同样传播按钮

时间:2014-02-26 21:12:22

标签: android layout android-activity android-linearlayout

我的活动包含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>

1 个答案:

答案 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" />