2011-11-02 163 views
0

我有一個奇怪的問題。視圖重疊LinearLayout中的另一個視圖

我定義了一個垂直方向的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,並將按鈕對齊父級(佈局)的底部,並將圖像設置爲在按鈕上方。

現在我看到他們兩個,但現在的問題是,圖片的寬度也縮小

+0

Post code。佈局xml和您的自定義視圖代碼。 –

+0

@Kevin Galligan:見編輯 – piojo

回答

0

有多大你的形象?如果它大於視圖區域,它會將按鈕從屏幕上移開。如果該按鈕是第一個,你會看到它。如果按鈕位於圖像之後,則不會。這將是我的第一個猜測。你可以將整個事件(父LinearLayout)包裝在一個ScrollView中看看它是否做到了。如果是這樣,你需要以某種方式剪切圖像。

如果圖像大於屏幕尺寸,請嘗試以下操作。創建父LL,然後創建一個ScrollView並在其中添加圖像。將ScrollView的layout_weight設置爲1(或其他),並且不要設置按鈕的layout_weight。這應該強制ScrollView佔用儘可能多的空間,但爲按鈕留出空間,並允許您滾動以查看圖像。

我在代碼中沒有很好的代碼。我做的最XML佈局(而不是武斷,但我建議你一樣;)

+0

我不想滾動到按鈕,我想看到他們兩個。如果圖像的大小太大,我添加按鈕後如何使其自動適應它? – piojo

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的上述佈局。我想要的是將圖像視圖重疊在進度條上,並通過將android:layout_marginTop =「 - 30dp」設置爲imageview來實現同樣的效果。