drawableLeft仅在手机上将EditText对齐

时间:2018-09-16 04:30:32

标签: android android-layout

在我的项目中,我EditTexts彼此相邻放置。在IDE中,看起来不错...

enter image description here

然而,将其部署到我的手机后,带有可绘制对象的EditText未对齐

enter image description here

这仅在添加drawableLeftdrawableStart时发生。请注意,两套EditTexts位于自己的ConstraintLayout中,位于水平LinearLayout中,并且仅在drawableLeft和{{1 }}。

要复制此问题。只需创建一个新的布局资源并在您的手机上进行部署

LinearLayout

如何将 <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <LinearLayout android:id="@+id/layout" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginEnd="8dp" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:orientation="horizontal" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> <android.support.constraint.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="2"> <EditText android:id="@+id/txt" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginEnd="8dp" android:layout_marginRight="8dp" android:ems="10" android:inputType="number" android:maxLines="1" android:singleLine="true" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> </android.support.constraint.ConstraintLayout> <android.support.constraint.ConstraintLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="2"> <EditText android:id="@+id/txtDrawable" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginEnd="8dp" android:layout_marginRight="8dp" android:drawableLeft="@drawable/ic_android_black_24dp" android:drawablePadding="8dp" android:drawableStart="@drawable/ic_android_black_24dp" android:ems="10" android:inputType="number" android:maxLength="4" android:maxLines="1" android:singleLine="true" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> </android.support.constraint.ConstraintLayout> </LinearLayout> </android.support.constraint.ConstraintLayout> 与可绘制对象对齐到相邻的EditText

1 个答案:

答案 0 :(得分:0)

问题在于可绘制对象的高度大于电话中文本的高度。线性布局使所有内容水平居中,这就是您遇到此对齐问题的原因。您不必在IDE或一部电话中看到的内容在其他设备上也可以看到完全相同的东西。可能由于屏幕尺寸和分辨率而发生。

在解决方案上,您可以将所有编辑文本包装在一个约束布局中。使可绘制对象置于中心的编辑文本,其余的跟随其后。

def send_rivpics():

    capture = call(["fswebcam", "/home/pi/Desktop", "-r", "1280x740", "--no-banner", "rvr_stat.jpg"])
    if capture == 0:
        try:
            session = ftplib.FTP('files.000webhost.com','floodmonitoring-malabon','raspberry001')
            # change to your pic location
            file = open("/home/pi/rvr_stat.jpg", "rb")
            res = session.storbinary('STOR public_html/imgs/example.jpg', file)
            time.sleep(1)

            if ("226" in res) or ("successfully transferred" in res):
                print("Upload Success")
            else:
                print("Upload Failed")
        except:
            print("Upload Error")

    file.close()
    session.quit()