0

那麼我想在EditText和InputTextLayout標籤之間設置邊距/填充。android:如何在EditText自定義背景和InputTextLayout標籤之間設置邊距/填充?

這裏是我的形象 - desired design

主要的Xml碼 - `

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="56dp" 
    android:gravity="center_horizontal" 
    android:orientation="vertical" 
    android:paddingLeft="24dp" 
    android:paddingRight="24dp"> 

    <ImageView 
     android:id="@+id/imageView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="24dp" 
     android:src="@drawable/headphones_3" /> 

    <android.support.design.widget.TextInputLayout 
     android:id="@+id/textLabel" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="8dp" 
     android:layout_marginTop="8dp" 
     android:visibility="gone" 
     app:theme="@style/TextLabel"> 

     <EditText 
      android:id="@+id/input_email" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:hint="Email" 
      android:inputType="textEmailAddress" /> 
    </android.support.design.widget.TextInputLayout> 

    <android.support.design.widget.TextInputLayout 
     android:id="@+id/password_label" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:visibility="gone" 
     app:theme="@style/TextLabel"> 

     <EditText 
      android:id="@+id/input_password" 
      android:layout_width="match_parent" 
      android:layout_height="40dp" 
      android:background="@drawable/edit_text_style" 
      android:drawablePadding="@dimen/floating_hint_margin" 
      android:hint="Password" 
      android:inputType="textPassword" 
      android:paddingLeft="@dimen/floating_hint_margin" /> 

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

`

雖然現在我應用自定義主題只有到「密碼」 TextInputLayout

這裏是的代碼編輯文件類型

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<!-- focused state --> 
<item android:state_focused="true"> 
    <shape android:shape="rectangle"> 
     <solid android:color="#80FFFFFF" /> 
     <stroke android:width=".5dp" android:color="@color/colorPrimary" /> 
     <corners android:radius="6dp" /> 
    </shape> 
</item> 
<!-- normal state --> 
<item> 
    <shape> 
     <solid android:color="@android:color/transparent" /> 
     <stroke android:width="2dp" android:color="@color/colorPrimary" /> 
     <corners android:radius="22dp" /> 
    </shape> 
</item> 

這我得到的結果 - Resulted Image

正如你可以看到標籤上升到光標並有標籤和背景的EditText之間沒有填充。

以及如何(現在,因爲它是對光標的頂部)設置標籤爲背景的EditText開始的地方?

(對不起我的英文不好)

UPDATE:讓我解釋一下你 - 再次看到那些圖片!我想在TextInputLayout標籤之間設置填充(當您關注它時,這是密碼)。什麼你們說的是創建自定義繪製之間的填充(這是edit_text_style這裏)光標和標籤,但我想我加入了繪製和標籤之間的填充(這似乎當它在對焦狀態密碼文本)&同樣要設置爲標籤位置它向上移動到光標啓動。

+0

使用填充:paddingTop =「10dp」爲頂部或android:padding =「10dp」全部 – Vickyexpert

+0

安卓 –

+0

這不工作@Vickyexpert。我想這是因爲我添加的背景。因爲它增加了光標和標籤之間的高度(但不是在背景和標籤之間) –

回答

0

您可以將自定義樣式到您的EditText(你需要有一個填充onPressedState的那些):

<EditText 
     android:id="@+id/input_email" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="Email" 
     android:inputType="textEmailAddress" /> 

而且款式:

<?xml version="1.0" encoding="utf-8"?> 
    <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item android:state_focused="true" 
      android:state_pressed="true" 
      android:drawable="@drawable/next_white"> 
      <inset android:insetLeft=""YOUR_PADDING_IN_DP dp"/> 

來源:android:drawableLeft margin and/or padding

對於頁邊距來說,不可能用drawable來完成,但是你仍然可以定義一個動畫來實現這個技巧:

在res /動畫,營造margin_animation.xml

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

    <set xmlns:android="http://schemas.android.com/apk/res/android"    android:interpolator="@android:anim/accelerate_interpolator"> 
       <translate android:fromYDelta="0" android:toYDelta="100%" /> 
    </set> 

來源:In Android, is it possible to set the margin from the drawable?

+0

這不是我要求的。謝謝你。我想要在可繪製背景和TextInputLayout標籤之間填充,並且也希望將標籤位置向上移動到光標。 –

+0

對不起,我誤解了你。 如果我理解你,你需要密碼EditText和它的標籤之間的餘量?如果是這樣,你應該嘗試爲你的TextInputLayout應用一個** margin =「8dp」**對應於密碼EditText 對於遊標填充,你應該添加padding =「your_padding」到你的EditText我猜 –

+0

讓我來解釋一下 - 再次看到這些圖像。我想在TextInputLayout標籤之間設置填充(當您關注它時,這是密碼)。你們說的是在自定義drawable(這是edit_text_style這裏)光標和Label之間創建填充,但是我希望在我添加的drawable和Label(當它處於聚焦狀態時出現的密碼文本)之間填充。 –

0

@Ansh ....你的繪製設置爲您TextInputLayout並採取填充以編輯文本和TextInputLayout .....

在你的方式,這是行不通的。 ...如果你想要做的一樣,你想與textinputlayout

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="56dp" 
     android:gravity="center_horizontal" 
     android:orientation="vertical" 
     android:paddingLeft="24dp" 
     android:paddingRight="24dp"> 

     <ImageView 
      android:id="@+id/imageView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="24dp" 
      android:src="@mipmap/ic_launcher" /> 

     <android.support.design.widget.TextInputLayout 
      android:id="@+id/textLabel" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="8dp" 
      android:layout_marginTop="8dp" 
      android:padding="10dp" 
      android:background="@drawable/edit_text_style" 
      android:visibility="visible"> 

      <EditText 
       android:id="@+id/input_email" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:background="@null" 
       android:hint="Email" 
       android:inputType="textEmailAddress" 
       android:padding="10dp" /> 
     </android.support.design.widget.TextInputLayout> 

     <android.support.design.widget.TextInputLayout 
      android:id="@+id/password_label" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@drawable/edit_text_style" 
      android:padding="10dp" 

      android:visibility="visible"> 

      <EditText 
       android:id="@+id/input_password" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:background="@null" 
       android:padding="10dp" 
       android:hint="Password" 
       android:inputType="textPassword" 

      /> 

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

而且還您繪製只需要一個矩形或圓形更好的查看

中的EditText
相關問題