2016-02-09 153 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> 

希望這有助於。