2012-09-12 51 views
2

我有一些FrameLayout来显示重叠的图像。在这个FrameLayout下,我想为某些点击操作显示一个标准按钮。Android:在一个布局中使用2个布局

为了让我的工作更轻松,我想,我可以在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> 

回答

0

先说:你 第一的LinearLayout的方向是错误的。你应该使用垂直而不是水平,因为它会显示你的图像的按钮的权利,而不是下面。

第二: 没有必要将按钮包装到另一个LinearLayout中,导致它是一个单反项目并附加到您的第一个LinearLayout。

第三: 上设置另一个 '地点',给你的顶部的LinearLayout等的ID按钮 '机器人: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)); 

希望我能帮助你?

0

首先你改变线性布局方向垂直,二是没有必要使用另一个

布局ü可以把按钮直接

例如:机器人:方向=“垂直”

相关问题