2016-02-09 161 views
1

我已经尝试了一些解决方案,但我没有在android中获得EditText的预期设计。在android中自定义EditText的设计

enter image description here

最终的设计应该是这样的。它的底部有浅灰色边框,聚焦时它应该将颜色改变为其他颜色。

欢迎提供所有建议和解决方案。谢谢。

+0

在您的应用中添加 @ color/your_color_code他们的风格 –

+0

检查以下链接http://stackoverflow.com/questions/25203292/how-to-set-line-as-a- background-using-xml-shape-below-to-edittext – krishna

+0

使用这个可能会帮助你https://github.com/wrapp/floatlabelededittext –

回答

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

<item> 
    <shape> 
     <solid android:color="@color/gray" /> 
    </shape> 
</item> 

<item 
    android:bottom="1px" 
    android:left="0px"> 
    <shape android:shape="rectangle" > 
     <solid android:color="#FFFFFF" /> 
    </shape> 
</item> 

</layer-list> 
+0

它不工作,任何额外的变数可能有我错过了? – iSandeep

+0

你有添加这个XML作为你的编辑文本的背景? – krishna

+0

我已经做好清洁和建造工作了!不知道到底是什么问题!谢谢@Krishna – iSandeep

0

我是这么认为的,这是你的观点:

<LinearLayout 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:gravity="center_horizontal" 
android:orientation="vertical" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin">  

<!-- Login progress --> 
<ProgressBar 
    android:id="@+id/login_progress" 
    style="?android:attr/progressBarStyleLarge" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="8dp" 
    android:visibility="gone" /> 

<ScrollView 
    android:id="@+id/login_form" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <LinearLayout 
     android:id="@+id/email_login_form" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 

     <android.support.design.widget.TextInputLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 

      <AutoCompleteTextView 
       android:id="@+id/email" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:hint="@string/prompt_email" 
       android:inputType="textEmailAddress" 
       android:maxLines="1" 
       android:singleLine="true" /> 

     </android.support.design.widget.TextInputLayout> 

     <android.support.design.widget.TextInputLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 

      <EditText 
       android:id="@+id/password" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:hint="@string/prompt_password" 
       android:imeActionId="@+id/login" 
       android:imeActionLabel="@string/action_sign_in_short" 
       android:imeOptions="actionUnspecified" 
       android:inputType="textPassword" 
       android:maxLines="1" 
       android:singleLine="true" /> 

     </android.support.design.widget.TextInputLayout> 

     <Button 
      android:id="@+id/email_sign_in_button" 
      style="?android:textAppearanceSmall" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="16dp" 
      android:text="@string/action_sign_in" 
      android:textStyle="bold" /> 

    </LinearLayout> 
</ScrollView> 

+0

设计不会呈现由于' – iSandeep

+0

@iSandeep是你添加编译'com.android.support:design:23.1.1'到你的gradle吗? – javadaskari

0

它可以通过styles尝试添加下面的代码行到你的活动的styletheme

<item name="colorControlNormal">@color/yourNormalColor</item> 
     <item name="colorControlActivated">@color/yourActiveColor</item> 
     <item name="colorControlHighlight">@color/yourHighlightColor</item> 
+0

它不工作,任何额外的变数可能有我错过了? – iSandeep

+0

你是怎么做到的?,你可以发布你的代码吗?@ iSandeep – Shishram

+0

这是我的style.xml' <! - Base application theme。 - > ' – iSandeep

0
完成

使用以下内容drawable如水平线(从https://stackoverflow.com/a/21555379/3027124萃取)

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item> 
     <shape android:shape="rectangle" > 
      <solid android:color="@android:color/darker_gray" /> 
      <padding android:bottom="1dp"/> 
     </shape> 
    </item> 
    <item> 
     <shape android:shape="rectangle" > 
      <solid android:color="@android:color/white" /> 
     </shape> 
    </item> 
</layer-list> 

并设置在XML后台EditText作为

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

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="3dp" 
     android:layout_marginRight="3dp" 
     android:text="User Name" /> 

    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="User Name" 
     android:layout_marginLeft="3dp" 
     android:layout_marginRight="3dp" 
     android:background="@drawable/horizonal_line"/> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="3dp" 
     android:layout_marginRight="3dp" 
     android:text="Password" /> 

    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="Password" 
     android:layout_marginLeft="3dp" 
     android:layout_marginRight="3dp" 
     android:background="@drawable/horizonal_line"/> 

</LinearLayout> 

希望这有助于。