我正在尝试配置我的按钮布局,但无法使结构正确形成。当我在VM上运行代码时,它使得ImageButton广告占据屏幕的百分之五十,尽管重量仅为10%。每个图像按钮引用存储在drawable-ldpi中的图像,每个图像的大小约为1 KB,活动代码是基本的,没有添加,这是目前通过主xml的纯图形界面。
预期布局:
_______________________
| logo |
|______________________|
| search |
|______________________|
| |
| featured |
| |
|______________________|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
|____|_____|_____|_____|
| advertisement |
|______________________|
ANDROID MAIN.XML代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainlayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/toplayout"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_weight="45"
android:gravity="top"
android:orientation="vertical" >
<ImageButton
android:id="@+id/mytastelogo"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_weight="15"
android:src="@drawable/mytastelogo_image" />
<ImageButton
android:id="@+id/search"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_weight="10" />
<ImageButton
android:id="@+id/featuredpanel"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_weight="20" />
</LinearLayout>
<LinearLayout
android:id="@+id/bottomlayout"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_weight="45"
android:gravity="bottom"
android:orientation="horizontal" >
<ImageButton
android:id="@+id/mycollection"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/mycollection_image" />
<ImageButton
android:id="@+id/myrecommendations"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/myrecommendations_image" />
<ImageButton
android:id="@+id/topitems"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/topitems_image" />
<ImageButton
android:id="@+id/randomitem"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/randomitem_image" />
</LinearLayout>
<LinearLayout
android:id="@+id/adlayout"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_weight="10"
android:gravity="end" >
<ImageButton
android:id="@+id/advertisement"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</LinearLayout>
答案 0 :(得分:1)
试试吧: - )
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainlayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/toplayout"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="45"
android:gravity="top"
android:orientation="vertical" >
<ImageButton
android:id="@+id/mytastelogo"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="15" />
<ImageButton
android:id="@+id/search"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="10" />
<ImageButton
android:id="@+id/featuredpanel"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="20" />
</LinearLayout>
<LinearLayout
android:id="@+id/bottomlayout"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="45"
android:gravity="bottom"
android:orientation="horizontal" >
<ImageButton
android:id="@+id/mycollection"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_weight="1" />
<ImageButton
android:id="@+id/myrecommendations"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_weight="1" />
<ImageButton
android:id="@+id/topitems"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_weight="1" />
<ImageButton
android:id="@+id/randomitem"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:id="@+id/adlayout"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="10" >
<ImageButton
android:id="@+id/advertisement"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
答案 1 :(得分:0)
当您的方向为layout_height
时,您需要将0dp
设置为vertical
。如果是horizontal
,请将layout_width
设置为0dp
。
例如:
<LinearLayout
android:id="@+id/toplayout"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="45"
android:gravity="top"
android:orientation="vertical" >
答案 2 :(得分:-1)
所有具有确定其高度的权重的项目都应该将android:layout_height设置为0dp。
android:layout_height="0dp"
同样,对于宽度由重量决定的项目,您必须设置
android:layout_width="0dp"