Android:在一个布局中使用2个布局

时间:2012-09-12 21:15:55

标签: java android layout button android-framelayout

我有一些FrameLayout来显示重叠的图像。在这个FrameLayout下,我想显示一个单击操作的标准按钮。

为了让我的工作更轻松,我想,我可以在FrameLayout下放置一个新的线性或相对布局 - 当然在一个LinearLayout中。

但这种方法对我不起作用。

在整个FrameLayout下显示我的按钮而不将其放在布局中并以programmaticaly方式管理其位置的最佳方法是什么?

<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<FrameLayout
    android:id="@+id/framelayout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="top|left" >
     <ImageView
         android:id="@+id/coverimg"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:layout_gravity="top|left"
         android:maxHeight="100dp"
         android:minHeight="130dp"
         android:minWidth="130dp"
         android:src="@drawable/cover_img" />
     <ImageView
         android:id="@+id/imageView2"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_gravity="center_vertical"
         android:layout_marginLeft="100dp"
         android:src="@android:drawable/ic_media_play" />
<ProgressBar
        android:id="@+id/progressBar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
        android:visibility="gone" />
</FrameLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:text="Button" />
</LinearLayout>
</LinearLayout>

2 个答案:

答案 0 :(得分:0)

首先说: 第一个LinearLayout的方向是错误的。您应该使用vertical而不是horizo​​ntel,因为它会显示图像右侧的按钮而不是下方。

第二: 没有必要将按钮包装到另一个LinearLayout中,因为它是一个sinlge项并附加到您的第一个LinearLayout。

第三: 要在另一个“地方”设置按钮,请为您的顶级LinearLayout提供一个ID,如'android:id =“@ + id / myLinear”',然后使用以下代码:

LinearLayout myLinear = (LinearLayout)this.findViewById(R.id.myLinear);
LayoutParams lp = new LinearLayout.LayoutParams(Gravity.CENTER);
myLinear.setLayoutParams(lp);

也许这会起作用:

LinearLayout myLinear = (LinearLayout)this.findViewById(R.id.myLinear);
myLinear.setLayoutParams(new LinearLayout.LayoutParams(Gravity.CENTER));

希望我能帮到你?

答案 1 :(得分:0)

首先,将线性布局方向更改为垂直,然后不需要使用其他

布局你可以直接放置按钮

Ex:android:orientation =“vertical”