右边这个QuickContactBadge 总是位置不对,
在网上查的android:visibility="invisible" 这个属性会在屏幕占据空间的,
但有时候显示不出来,也就是根本没占据空间,为什么?
我希望是 他始终位于右下角,怎么实现
<LinearLayout 
        android:id="@+id/mms_layout_view_parent"
        android:paddingLeft="5dip"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="horizontal" >        <android.widget.QuickContactBadge
            android:layout_marginLeft="0dip"
            android:layout_marginRight="5dip"
            android:layout_marginTop="5dip"
            android:layout_marginBottom="0dip"
            android:layout_gravity="bottom"
            android:id="@+id/avatar_left"
            android:visibility="invisible" 
            style="?android:attr/quickContactBadgeStyleWindowSmall" />        <LinearLayout
            android:id="@+id/xxx"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="20px"
            android:paddingRight="20px"
            android:layout_alignParentBottom="true"
            android:orientation="vertical">            <TextView android:id="@+id/text_view"
                android:autoLink="all"
                android:paddingTop="3dip"
                android:paddingBottom="3dip"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:linksClickable="false"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:textColor="#ff000000"
                android:textSize="18sp" />
            <ViewStub android:id="@+id/mms_layout_view_stub"
                android:layout="@layout/mms_layout_view"
                android:layout_gravity="center_vertical"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/>
            <ViewStub android:id="@+id/mms_downloading_view_stub"
                android:layout="@layout/mms_downloading_view"
                android:layout_gravity="center_vertical"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>        </LinearLayout>        <android.widget.QuickContactBadge
            android:layout_marginLeft="5dip"
            android:layout_marginRight="0dip"
            android:layout_marginTop="5dip"
            android:layout_marginBottom="0dip"
            android:layout_gravity="bottom"
            android:layout_alignParentRight="true" 
            android:id="@+id/avatar_right"
            android:visibility="invisible" 
            style="?android:attr/quickContactBadgeStyleWindowSmall" />    </LinearLayout>

解决方案 »

  1.   

    给他设置android:layout_width和android:layout_height再增加android:layout_weight="1"
      

  2.   


    android:visibility="invisible\visible\gone"
    invisible - 不可见,占据空间
    visible - 可见,占据空间
    gone - 不可见,不占据空间<android.widget.QuickContactBadge
      android:layout_marginLeft="5dip"
      android:layout_marginRight="0dip"
      android:layout_marginTop="5dip"
      android:layout_marginBottom="0dip"
      android:layout_gravity="bottom"
     //可以根据根据大小指定具体的值
      android:layout_width="warp_content"
      android:layout_height="warp_content"
      android:layout_alignParentRight="true"  
      android:id="@+id/avatar_right"
      android:visibility="invisible"  
      style="?android:attr/quickContactBadgeStyleWindowSmall" />
      

  3.   

    再加一句:android:layout_weight="1"
      

  4.   

    恩,前辈们很有经验啊,
    android:layout_weight="1"
    这个是有效,能解释下为什么么?直白点