我很困惑。我想显示地图,并在地图下方显示5个按钮。我使用RelativeLayout,但程序只显示Product按钮。为什么?我很困惑我使用的是哪种布局(线性,相对,帧或绝对)!!请帮我。以及如何更正此代码?
location.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/frame"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.google.android.maps.MapView
android:id="@+id/mapView"
android:apiKey="0cPRv243zM1_S3ydsNg8MJP9_6BfCp642jOhPvQ"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/background"
android:layout_gravity="bottom"
android:orientation="horizontal" >
<Button
android:id="@+id/button_home"
style="?android:attr/borderlessButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableTop="@drawable/home_icon"
android:text="@string/button_home"
android:textColor="@color/text_home" />
<Button
android:id="@+id/button_product"
style="?android:attr/borderlessButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableTop="@drawable/product_icon"
android:onClick="Product"
android:text="@string/button_product"
android:textColor="@color/text_product" />
</LinearLayout>
</LinearLayout>
答案 0 :(得分:1)
要回答您的具体问题:您应该说产品按钮位于主页按钮的右侧,而不是说主页按钮位于产品按钮的左侧。当RelativeLayout膨胀时,布局以线性方式解析,因此如果视图A相对于视图B定位,则视图B必须首先出现。
<Button
android:id="@+id/button_home"
style="?android:attr/borderlessButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableTop="@drawable/home_icon"
android:text="@string/button_home"
android:textColor="@color/text_home"/>
<Button
android:id="@+id/button_product"
style="?android:attr/borderlessButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/button_home"
android:drawableTop="@drawable/product_icon"
android:onClick="Product"
android:text="@string/button_product"
android:textColor="@color/text_product" />
将其添加到产品按钮并从主页按钮中删除layout_toLeftOf。
android:layout_toRightOf="@id/button_home"
您可以使用重力和对齐来定位主页按钮,然后让其他四个按钮跟在其后面,每个按钮位于前一个按钮的右侧。
祝你好运答案 1 :(得分:0)
LinearLayout :当我们需要安排时使用LinearLayout 小部件/视图以水平或垂直方式。 排列方向可以设置为水平或垂直, 默认情况下它是水平的。
TableLayout :如果需要安排布局的小部件/视图 以行和列的形式,我们使用此布局对象。 这类似于html表。单元格可以跨越列。 TableLayout不显示其边框。我们可以做到 通过设置列的相应属性来缩小和拉伸, “TableRow”是另一个应该结合使用的辅助窗口小部件 使用TableLayout。
RelativeLayout :这里每个小部件/视图的位置是 相对/相互依赖。例如,当需要布局时 这样它在编辑文本框的左侧有一个文本视图和一个按钮 就在EditText下面。视图之间的关系得到了关注 一次迭代,因此如果视图B的位置取决于视图A的位置, 视图必须在布局中排在第一位。
FrameLayout :这是一个非常简单的布局,用于保存一个部分 屏幕空白,用于在运行时显示项目或项目组。一切 framelayout中添加的元素将添加到屏幕的左上角。
AbsoluteLayout :当需要指定精确的x和y坐标时 视图的位置,然后需要使用AbsoluteLayout。这个布局是 难以维持。
答案 2 :(得分:0)
默认情况下,RelativeLayout将这两个按钮放在一起,这样你就可以看到后者。
行
android:layout_toLeftOf="@+id/button_product"
错了。 @+id
创建了一个ID,在这种情况下使用@id
。
我建议使用LinearLayout。将这些按钮放入其中,然后使用边距进行调整。