我有一些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>
答案 0 :(得分:0)
首先说: 第一个LinearLayout的方向是错误的。您应该使用vertical而不是horizontel,因为它会显示图像右侧的按钮而不是下方。
第二: 没有必要将按钮包装到另一个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”