如何使用EditText

时间:2018-05-16 11:21:15

标签: android android-studio android-edittext android-button android-textinputedittext

如何创建像Instagram的聊天活动一样的EditText? EditText里面有发送按钮。我尝试使用ImageButton创建它,但它不能很好地工作,因为每当我键入时Text都会在图像下。如果设置每行的单词限制,它也不能很好地工作。所以任何帮助,请它,它有点卡在里面。我是Android开发的新手,所以请帮助我们提供新鲜感,并提前感谢。

EDITTEXT

<android.support.v7.widget.AppCompatEditText
            android:id="@+id/itemEditText_id"
            android:layout_width="match_parent"
            android:layout_height="70dp"
            android:layout_marginTop="8dp"
            android:layout_marginStart="2dp"
            android:layout_marginEnd="4dp"
            android:lines="2"
            android:scrollHorizontally="false"
            android:maxLength="69"
            android:scrollbars="vertical"
            android:background="@drawable/round_border_edit_text"
            android:hint="Go ahead \nSend messge"
            android:inputType="textMultiLine|textLongMessage"
            android:textAppearance="@style/TextAppearance.AppCompat.Body2"
            android:maxLines="2"
            android:minLines="1"
            >

ImageButoon

 <android.support.v7.widget.AppCompatImageButton
            android:id="@+id/itemSendButton_id"
            android:layout_width="25dp"
            android:layout_height="20dp"
            android:layout_alignParentEnd="true"
            android:layout_centerVertical="true"
            android:layout_marginEnd="11dp"
            android:background="@color/colorFacebookBtnText"
            android:clickable="true"
            android:focusable="true"
            android:scaleType="fitCenter"
            android:src="@drawable/ic_send" />

4 个答案:

答案 0 :(得分:0)

试试这个,你的问题就解决了:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <android.support.v7.widget.AppCompatEditText
        android:id="@+id/itemEditText_id"
        android:layout_width="match_parent"
        android:layout_height="70dp"
        android:layout_marginTop="8dp"
        android:layout_weight="1"
        android:background="@drawable/round_border_edit_text"
        android:hint="Go ahead \nSend messge"
        android:inputType="textMultiLine|textLongMessage"
        android:lines="2"
        android:maxLength="69"
        android:maxLines="2"
        android:minLines="1"
        android:scrollHorizontally="false"
        android:scrollbars="vertical"
        android:textAppearance="@style/TextAppearance.AppCompat.Body2" />


    <android.support.v7.widget.AppCompatImageButton
        android:id="@+id/itemSendButton_id"
        android:layout_width="25dp"
        android:layout_height="20dp"
        android:layout_gravity="center_vertical"
        android:background="@color/colorFacebookBtnText"
        android:clickable="true"
        android:focusable="true"
        android:scaleType="fitCenter"
        android:src="@drawable/ic_send" />
</LinearLayout>

将EditText和ImageView放在Linear Layout中,水平方向。

答案 1 :(得分:0)

试试这个:

  <?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="wrap_content" >

<android.support.v7.widget.AppCompatEditText
        android:id="@+id/itemEditText_id"
        android:layout_width="match_parent"
        android:layout_height="70dp"
        android:layout_marginTop="8dp"
        android:layout_marginStart="2dp"
        android:layout_marginEnd="4dp"
        android:lines="2"
        android:scrollHorizontally="false"
        android:maxLength="69"
        android:scrollbars="vertical"
        android:background="@drawable/round_border_edit_text"
        android:hint="Go ahead \nSend messge"
        android:inputType="textMultiLine|textLongMessage"
        android:textAppearance="@style/TextAppearance.AppCompat.Body2"
        android:maxLines="2"
        android:minLines="1"
        >

<android.support.v7.widget.AppCompatImageButton
        android:id="@+id/itemSendButton_id"
        android:layout_width="25dp"
        android:layout_height="20dp"
        android:layout_alignParentEnd="true"
        android:layout_centerVertical="true"
        android:layout_marginEnd="11dp"
        android:background="@color/colorFacebookBtnText"
        android:clickable="true"
        android:focusable="true"
        android:scaleType="fitCenter"
        android:src="@drawable/ic_send" />

  </RelativeLayout>

结果:

enter image description here

答案 2 :(得分:0)

我希望这对你有用

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:orientation="horizontal"
  xmlns:android="http://schemas.android.com/apk/res/android">

   <android.support.v7.widget.AppCompatEditText
    android:id="@+id/itemEditText_id"
    android:layout_width="match_parent"
    android:layout_height="70dp"
    android:lines="2"
    android:paddingLeft="10dp"
    android:scrollHorizontally="false"
    android:maxLength="69"
    android:gravity="left|center_vertical"
    android:scrollbars="vertical"
    android:background="@drawable/round_border_edit_text"
    android:hint="Go ahead \nSend messge"
    android:inputType="textMultiLine|textLongMessage"
    android:textAppearance="@style/TextAppearance.AppCompat.Body2"
    android:maxLines="2"
    android:minLines="1"/>


   <android.support.v7.widget.AppCompatImageButton
    android:id="@+id/itemSendButton_id"
    android:layout_width="25dp"
    android:layout_height="20dp"
    android:layout_gravity="center_vertical|right"
    android:background="@color/colorFacebookBtnText"
    android:clickable="true"
    android:layout_marginRight="10dp"
    android:focusable="true"
    android:scaleType="fitCenter"
    android:src="@mipmap/ic_launcher" />


  </FrameLayout>

答案 3 :(得分:0)

****嘿,非常感谢你的答案,但我找到了一个更好的解决方案,我只需要消除我的editText下栏,我通过给它背景为transparentColor(#00000000)并给我的相对布局容器圆形而不是我的editText并将图像按钮放在我的editText旁边。现在我甚至不需要设置字数限制一切正常。****

 <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/round_border_edit_text">

        <android.support.v7.widget.AppCompatEditText
            android:id="@+id/itemEditText_id"
            android:layout_width="261dp"
            android:layout_height="70dp"
            android:layout_marginEnd="4dp"
            android:layout_marginStart="2dp"
            android:layout_marginTop="8dp"
            android:background="@color/colorTransparent"
            android:hint="Go ahead \nSend messge"
            android:inputType="textMultiLine|textLongMessage"
            android:lines="2"
            android:maxLines="2"
            android:minLines="1"
            android:scrollHorizontally="false"
            android:scrollbars="vertical"
            android:textAppearance="@style/TextAppearance.AppCompat.Body2" />


        <android.support.v7.widget.AppCompatImageButton
            android:id="@+id/itemSendButton_id"
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:layout_centerVertical="true"
            android:layout_marginStart="-4dp"
            android:layout_toEndOf="@+id/itemEditText_id"
            android:background="@color/colorTransparent"
            android:clickable="true"
            android:focusable="true"
            android:scaleType="centerCrop"
            android:src="@drawable/send" />

    </RelativeLayout>

**** RelativeLayout ****的圆形形状

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <padding
        android:left="8dp"
        android:top="8dp"
        android:right="8dp"
        android:bottom="8dp"
        />

            <solid android:color="#EEEEEE"/>

            <corners android:radius="40dp" />

            <stroke
                android:width="1dp"
                android:color="@color/colorEditTextBorder"
                />


</shape>