私はRelativeLayoutを持っています。これを「スライダー」と呼びます。「AddPeople」をクリックしたときに別のRelativeLayoutにオーバーレイします(visibility = "gone"と"visible"を切り替えます)が、オーバーレイは必要なだけ画面の幅を広げます。このレイアウトは、「キャンセル」をクリックすると削除されます。これまでのところ、すべてが正常に機能しています。
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」画像と並べてほしい。
私の2つの問題は、「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デバイスの両方で起こっています。
編集:「新しい連絡先を追加」テキストの上に画像を配置してから、その下にテキストを配置しようとしましたが、同じことが起こります