2

我有一个RelativeLayout,我们将其称为“滑块”,当单击“添加人员”时,我想覆盖另一个RelativeLayout(通过切换可见性=“消失”和“可见”),但覆盖应该只需要根据需要增加屏幕的宽度。当单击“取消”时,此布局将被删除。到目前为止一切正常。

正确关闭 正确打开

RelativeLayout slider;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_people);
    RelativeLayout add = (RelativeLayout) findViewById(R.id.add_wrapper);
    RelativeLayout cancel = (RelativeLayout) findViewById(R.id.cancel_wrapper);
    slider = (RelativeLayout) findViewById(R.id.add_people_slider);

    add.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            slider.setVisibility(View.VISIBLE);
        }
    });

    cancel.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            slider.setVisibility(View.GONE);
        }
    });
}

当我尝试将另一个图像添加到滑块时出现问题。我在 XML 中的 @id/cancel_wrapper RelativeLayout 上方添加了这个(底部的完整 XML)。

<ImageView
        android:id="@+id/transparent_add"
        android:src="@drawable/ic_add_active_256"
        android:layout_height="30dp"
        android:layout_width="30dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true" />

坏的

出于某种原因,这使滑块的宽度成为屏幕的整个宽度。

更奇怪的是,如果我添加android:layout_marginRight="50dp"到此 ImageView 以将其向左移动一点,它会开始使滑块从左侧变小。我希望这个“transparent_add”图像与旧的“add”图像对齐。

差的有边距

那么,我的两个问题是,当我添加“transparent_add”图像时,它会出于未知原因更改滑块的宽度,并且当我在图像上添加 marginRight 时,它会使滑块的宽度从左侧变小。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/white" >

<TextView
    android:id="@+id/btn_people"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:paddingLeft="10dp"
    android:text="@string/label_people"
    android:textColor="@color/blue"
    android:textSize="16dp" />

<TextView
    android:id="@+id/people_info"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/btn_people"
    android:paddingLeft="10dp"
    android:text="@string/label_people_info"
    android:textSize="11dp" />

<RelativeLayout
    android:id="@+id/add_wrapper"
    android:layout_width="65dp"
    android:layout_height="50dp"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:background="@color/blue" >

    <ImageView
        android:id="@+id/plus_sign"
        android:layout_width="25dp"
        android:layout_height="25dp"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_marginRight="19dp"
        android:layout_marginTop="6dp"
        android:src="@drawable/ic_add_256" />

    <TextView
        android:id="@+id/add_people"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:paddingBottom="2dp"
        android:text="@string/label_add_people"
        android:textColor="@color/white"
        android:textSize="11dp" />
</RelativeLayout>

<ListView
    android:id="@+id/contacts_list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentLeft="true"
    android:layout_below="@id/people_info" />

<!-- switch between visible/gone -->
<RelativeLayout
    android:id="@+id/add_people_slider"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_alignParentRight="true"
    android:background="@color/blue"
    android:visibility="gone" >

    <TextView
        android:id="@+id/label_add_new_contact"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="65dp"
        android:layout_alignParentTop="true"
        android:paddingLeft="10dp"
        android:paddingRight="15dp"
        android:text="@string/label_add_new_contact"
        android:textColor="@color/white"
        android:textSize="16dp" />

    <TextView
        android:id="@+id/label_add_from_phone"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/label_add_new_contact"
        android:paddingLeft="10dp"
        android:paddingRight="15dp"
        android:paddingTop="15dp"
        android:text="@string/label_add_from_phone"
        android:textColor="@color/white"
        android:textSize="16dp" />

    <TextView
        android:id="@+id/label_add_from_facebook"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/label_add_from_phone"
        android:paddingLeft="10dp"
        android:paddingRight="15dp"
        android:paddingTop="15dp"
        android:text="@string/label_add_from_facebook"
        android:textColor="@color/white"
        android:textSize="16dp" />

    <TextView
        android:id="@+id/label_add_from_linkedin"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/label_add_from_facebook"
        android:paddingLeft="10dp"
        android:paddingRight="15dp"
        android:paddingTop="15dp"
        android:text="@string/label_add_from_linkedin"
        android:textColor="@color/white"
        android:textSize="16dp" />

    <!-- insert image here -->

    <RelativeLayout
        android:id="@+id/cancel_wrapper"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:paddingLeft="15dp"
        android:paddingRight="15dp"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:paddingBottom="10dp" >

        <ImageView
            android:id="@+id/image_cancel"
            android:layout_width="25dp"
            android:layout_height="25dp"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="4dp"
            android:src="@drawable/ic_close_256"/>

        <TextView
            android:id="@+id/label_cancel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:text="@string/label_cancel"
            android:textColor="@color/white"
            android:textSize="8dp" />
    </RelativeLayout>
</RelativeLayout>
</RelativeLayout>

编辑:这发生在 Eclipse 和我的 Android 设备上。

编辑:我尝试将图像放在“添加新联系人”文本上方,然后将文本放在其下方,但同样的事情发生了

4

0 回答 0