[英]Android: Need help for formatting a layout
I try to reproduce this design in xml, but I have a problem, the edit button I can not place it properly, I want it to always stick at the bottom of the cardview but a party in the cardview and a part outside, here is my xml code and the design(its for custom alert dialog, The button in question is at the bottom id cpdEdit.): 我尝试在xml中重现此设计,但是我有一个问题,我无法正确放置编辑按钮,我希望它始终停留在cardview的底部,但始终停留在cardview的一方,外面的一部分,这是我的xml代码和设计(用于自定义警报对话框,相关按钮位于底部ID cpdEdit。):
the code: 编码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/relative"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:gravity="center">
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="3dp"
android:id="@+id/cardView">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="10dp"
android:layout_marginEnd="10dp"
android:adjustViewBounds="true"
android:maxHeight="30dp"
android:id="@+id/cdpClose"
android:maxWidth="30dp"
android:src="@drawable/close_ics" />
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="40dp"
android:paddingRight="40dp">
<TextView
android:id="@+id/un"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginTop="40dp"
android:text="Nom"
android:textColor="@color/colorPrimary"
android:textSize="17sp" />
<TextView
android:id="@+id/deu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/cdpName"
android:layout_marginTop="10dp"
android:text="Numero"
android:textColor="@color/colorPrimary"
android:textSize="17sp" />
<TextView
android:id="@+id/troi"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/cdpName"
android:layout_below="@+id/cdpNumberPhone"
android:text="Adress"
android:layout_marginTop="10dp"
android:textColor="@color/colorPrimary"
android:textSize="17sp" />
<TextView
android:id="@+id/trois"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/cdpAdress"
android:layout_marginTop="10dp"
android:text="Info"
android:textColor="@color/colorPrimary"
android:textSize="17sp" />
<TextView
android:id="@+id/troiss"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_alignStart="@+id/troi"
android:layout_below="@+id/cdpInfo"
android:text="Note"
android:textColor="@color/colorPrimary"
android:textSize="17sp" />
<EditText
android:id="@+id/cdpName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/un"
android:enabled="false"
android:text="Mickael Belhassen"
android:textColor="#000000"
android:textSize="17sp" />
<EditText
android:id="@+id/cdpNumberPhone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/deu"
android:enabled="false"
android:text="0584688800"
android:textColor="#000000"
android:textSize="17sp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignTop="@+id/cdpNumberPhone"
android:layout_marginEnd="12dp"
android:adjustViewBounds="true"
android:maxHeight="30dp"
android:maxWidth="30dp"
android:src="@drawable/copy_ics"
android:id="@+id/cdpCopyPhone" />
<EditText
android:id="@+id/cdpAdress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/troi"
android:enabled="false"
android:text="20 Dizengoff Street"
android:textColor="#000000"
android:textSize="17sp" />
<EditText
android:id="@+id/cdpInfo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/trois"
android:enabled="false"
android:text="Info supp"
android:textColor="#000000"
android:textSize="17sp" />
<EditText
android:id="@+id/cdpNote"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/troiss"
android:enabled="false"
android:layout_marginBottom="40dp"
android:text="Note"
android:textColor="#000000"
android:textSize="17sp" />
</RelativeLayout>
</android.support.v7.widget.CardView>
<Button
android:id="@+id/cdpEdit"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="428dp"
android:background="@drawable/buttonshapeedit"/>
</RelativeLayout>
it's the margintop that really bothers me ... 真正让我感到困扰的是边缘边缘...
You can try following code (tried and tested) 您可以尝试以下代码(经过测试)
<?xml version="1.0" encoding="utf-8"?>
[![enter image description here][1]][1]<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/relative"
android:orientation="vertical"
android:background="@android:color/darker_gray">
<LinearLayout
android:id="@+id/lin_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/darker_gray"
android:orientation="vertical"
>
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="25dp"
app:contentPaddingLeft="40dp"
app:contentPaddingRight="40dp"
android:cardBackgroundColor="@android:color/white"
android:id="@+id/cardView">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="10dp"
android:layout_marginEnd="10dp"
android:adjustViewBounds="true"
android:maxHeight="30dp"
android:id="@+id/cdpClose"
android:maxWidth="30dp"
android:src="@drawable/ic_launcher_background"
android:layout_marginRight="10dp" />
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/un"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginTop="40dp"
android:text="Nom"
android:textColor="@color/colorPrimary"
android:textSize="17sp"
android:layout_alignParentLeft="true" />
<TextView
android:id="@+id/deu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/cdpName"
android:layout_marginTop="10dp"
android:text="Numero"
android:textColor="@color/colorPrimary"
android:textSize="17sp"
android:layout_alignParentLeft="true" />
<TextView
android:id="@+id/troi"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/cdpName"
android:layout_below="@+id/cdpNumberPhone"
android:text="Adress"
android:layout_marginTop="10dp"
android:textColor="@color/colorPrimary"
android:textSize="17sp"
android:layout_alignLeft="@+id/cdpName" />
<TextView
android:id="@+id/trois"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/cdpAdress"
android:layout_marginTop="10dp"
android:text="Info"
android:textColor="@color/colorPrimary"
android:textSize="17sp"
android:layout_alignParentLeft="true" />
<TextView
android:id="@+id/troiss"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_alignStart="@+id/troi"
android:layout_below="@+id/cdpInfo"
android:text="Note"
android:textColor="@color/colorPrimary"
android:textSize="17sp"
android:layout_alignLeft="@+id/troi" />
<EditText
android:id="@+id/cdpName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/un"
android:enabled="false"
android:text="Mickael Belhassen"
android:textColor="#000000"
android:textSize="17sp"
android:layout_alignParentLeft="true" />
<EditText
android:id="@+id/cdpNumberPhone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/deu"
android:enabled="false"
android:text="0584688800"
android:textColor="#000000"
android:textSize="17sp"
android:layout_alignParentLeft="true" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignTop="@+id/cdpNumberPhone"
android:layout_marginEnd="12dp"
android:adjustViewBounds="true"
android:maxHeight="30dp"
android:maxWidth="30dp"
android:src="@drawable/ic_launcher_background"
android:id="@+id/cdpCopyPhone"
android:layout_alignParentRight="true"
android:layout_marginRight="12dp" />
<EditText
android:id="@+id/cdpAdress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/troi"
android:enabled="false"
android:text="20 Dizengoff Street"
android:textColor="#000000"
android:textSize="17sp"
android:layout_alignParentLeft="true" />
<EditText
android:id="@+id/cdpInfo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/trois"
android:enabled="false"
android:text="Info supp"
android:textColor="#000000"
android:textSize="17sp"
android:layout_alignParentLeft="true" />
<EditText
android:id="@+id/cdpNote"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/troiss"
android:enabled="false"
android:layout_marginBottom="40dp"
android:text="Note"
android:textColor="#000000"
android:textSize="17sp"
android:layout_alignParentLeft="true" />
</RelativeLayout>
</android.support.v7.widget.CardView>
</LinearLayout>
<Button
android:id="@+id/cdpEdit"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_centerHorizontal="true"
android:layout_gravity="center_horizontal"
android:layout_alignBottom="@+id/lin_layout"
android:background="@drawable/ic_launcher_background"/>
</RelativeLayout>
My solution: is it good to use negative numbers?
<Button
android:id="@+id/cdpEdit"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_centerHorizontal="true"
android:layout_below="@+id/cardView"
android:layout_marginTop="-24dp"
android:background="@drawable/buttonshapeedit"/>
The solution you provided later is correct. 您稍后提供的解决方案是正确的。
Replying to your question : Is it good to add negative margins ? 回答您的问题:增加负边距是否很好?
It is no harm to add negative margins but your layout should not hinder in all type of screens. 添加负边距无害,但您的布局不应在所有类型的屏幕上都受到阻碍。 The position of your button should remain same even if you view in 10.1 (2560*1600) tablet or in 3.7 (400*800) Phone.
即使在10.1(2560 * 1600)平板电脑或3.7(400 * 800)电话中查看,按钮的位置也应保持不变。
For further reference you can refer to this link : Is it a bad practice to use negative margins in Android? 有关更多参考,您可以参考以下链接: 在Android中使用负边距是一种不好的做法吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.