简体   繁体   English

Android:需要格式化格式的帮助

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM