将LinearLayout的大小调整为ImageView的宽度

时间:2013-01-17 09:39:04

标签: java android xml android-layout android-widget

在我的Fragment XML中,我有一个用作背景的imageview。在相同的布局中,我得到了一个LinearLayout,它包含一些应该在视图上水平查看的按钮,并且宽度与背景相同。由于wrap_content,我的代码将其大小调整为屏幕宽度。如何将其调整为imageview?

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:layout_marginTop="45sp" >

<ImageView 
        android:src="@drawable/background_detail_view"
        android:id="@+id/detailview_background"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:contentDescription="@string/detailview_background_description" />

<!-- more widgets -->

<LinearLayout
        android:id="@+id/detail_button_container"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_above="@+id/titel" >

        <Button 
        android:id="@+id/detail1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_weight="1" 
        android:text="1"/>

<Button 
        android:id="@+id/detail2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_weight="1" 
        android:text="2"/>

        <Button 
        android:id="@+id/detail3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_weight="1" 
        android:text="3"/>

<!-- more buttons -->

</LinearLayout>

我尝试以编程方式获取宽度并指定新的layoutparams但返回0因为视图尚未渲染。

1 个答案:

答案 0 :(得分:1)

在LinearLayout中,设置android:background="@drawable/background_detail_view"参数,以便LinearLayout具有此背景,而不是使用ImageView。