0

我正在尝试实现 DashboardLayout (模式 3)。方向为纵向时一切正常: 在此处输入图像描述

但是当应用程序的方向更改为专辑时,它看起来像: 在此处输入图像描述

这里是DashboardLayout.java的源代码

活动布局文件如示例:

<?xml version="1.0" encoding="utf-8"?>
<com.example.ui.DashboardLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/dashboard_layout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@android:color/white" >

    <Button
        android:id="@+id/posts"
        style="@style/DashboardButton"
        android:drawableTop="@drawable/ic_db_posts"
        android:onClick="onClick"
        android:text="posts" />

    ***and four same buttons***

</com.example.ui.DashboardLayout>

style/DashboardButton

<style name="DashboardButton">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:gravity">center_horizontal</item>
        <item name="android:layout_gravity">center_vertical</item>
        <item name="android:background">@drawable/db_buttons</item>
        <item name="android:textStyle">bold</item>
        <item name="android:textSize">16sp</item>
        <item name="android:textColor">#000000</item>
    </style>

仅用于按钮按下状态的背景:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >

    <item 
        android:state_pressed="true"
        android:drawable="@drawable/db_button_bd_pressed" />

</selector>

按下:

<?xml version="1.0" encoding="utf-8"?>
<shape 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <padding 
        android:left="10dp"
        android:top="20dp"
        android:right="10dp"
        android:bottom="20dp" />

    <corners android:radius="10dp" />

    <solid android:color="#a6cee1" />

</shape>

问题出在哪里?请帮帮我。

4

1 回答 1

1

如果按钮数量是偶数,仪表板布局才有效。你有一个奇数,只需插入一个额外的按钮:

android:background="@null" or "#ffffffff"//transparent

所以它会像一个额外的按钮一样处理它,但它是透明的。

于 2012-09-27T22:31:54.083 回答