Android - 重塑edittext框的正确方法

时间:2013-12-18 03:36:03

标签: android android-layout android-edittext android-drawable

我正在努力通过使用以下代码使Editbox看起来更好:

<EditText 
      android:id="@+id/edittext"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:layout_marginTop="5dip"
      android:layout_marginBottom="20dip"
      android:padding="5dip"
      android:singleLine="true"
      android:background="@drawable/rounded_edittext"
      android:hint="@string/hint"
      android:textColor="#000"/>

请注意,上面使用的background属性的形状为rounded_edittext,如下所示:

<?xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="5dp"
android:shape="rectangle" >

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

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

</shape>   

</item>

<item android:bottom="0.5dp">
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:padding="5dp"
    android:shape="rectangle" >

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

    <corners
        android:bottomLeftRadius="5dp"
        android:bottomRightRadius="5dp"
        android:topLeftRadius="5dp"
        android:topRightRadius="5dp" />

</shape>   
</item>

</layer-list>

应用此形状后,edittext框看起来比以前更漂亮,但是我丢失了“I”输入指示符。当我点击edittext框并输入内容时,没有输入指示符显示这让人觉得很糟糕。我想知道这是否是重塑编辑文本框的正确方法,或者是否有任何其他解决方法可以重塑相同的方框,但保留“I”输入指示符。

1 个答案:

答案 0 :(得分:1)

您需要在该EditText上编写OnClickListener并在您的活动中尝试此代码

EditText et = (EditText) findViewById(R.id.edittext);

et.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
    et.requestFocus();
    }
});