查看在LinearLayout中重叠另一个视图

时间:2011-11-02 18:00:21

标签: android layout

我有一个奇怪的问题。

我定义了一个垂直方向的LinearLayout。

我定义了一个ImageView和另一个自定义视图。

如果我添加自定义图像然后添加图像,一切都很好,我看到了它们。

如果我先添加图像,我只会看到图像。

我尝试使用LayoutParams的任何变体,但没有任何效果。

我在这里做错了什么?

编辑 - 我甚至尝试了一些默认按钮来检查它不是导致此内容的自定义视图

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
layout = new LinearLayout(getApplicationContext());
layout.setOrientation(LinearLayout.VERTICAL);
layout.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
ImageView image = new ImageView(getApplicationContext());
image.setImageDrawable(getResources().getDrawable(R.drawable.image_strip));
Button button = new Button(getApplicationContext());
button.setText("test");
layout.addView(image, new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
layout.addView(button, new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
 setContentView(layout);
}

我找到了一种方法,但它仍有问题。

我使用了RelativeLayout,并将按钮对齐到父级的底部(布局),并将图像设置在按钮上方。

现在我看到了他们两个,但现在的问题是图像宽度也缩小了

2 个答案:

答案 0 :(得分:0)

你的形象有多大?如果它比视图区域大,它将按下按钮关闭屏幕。如果按钮是第一个,你会看到它。如果按钮位于图像之后,则不会。这将是我的第一个猜测。您可以在ScrollView中包装整个事物(父LinearLayout)以查看它是否正在执行此操作。如果是这样,你需要以某种方式剪辑图像。

如果图像大于屏幕尺寸,请尝试以下操作。创建父LL,然后创建一个ScrollView并在其中添加图像。将ScrollView的layout_weight设置为1(或其他),并且不要设置按钮的layout_weight。这应该强制ScrollView占用尽可能多的空间,但为按钮留出空间,并允许您滚动查看图像。

我在代码中没有很好的代码。我在XML中做了大部分布局(而不是教化,但我建议你这样做;)

答案 1 :(得分:0)

 <ProgressBar
    android:layout_height="50dp"
    android:layout_width="50dp"
    android:id="@+id/myprogress"
    android:layout_gravity="center_horizontal"
    android:visibility="gone"
    style="@android:style/Widget.Holo.Light.ProgressBar.Small"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_below="@+id/title"       />



<ImageView
    android:layout_height="165dp"
    android:id="@+id/imageView1"
    android:layout_width="125dp"
    android:scaleType="fitXY"
    android:visibility="invisible"
    android:layout_marginTop="-30dp"
    android:layout_gravity="center_horizontal"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"/>

检查进度条和imageview的上述布局。我想要的是将imageview与进度条重叠,我通过设置android:layout_marginTop =&#34; -30dp&#34;来实现同样的目标。到imageview