2017-09-04 27 views
1

我试图使用TextInputLayout来统计EditText中的字符数。问题是,我把我的editText包装在TextInputLayout的代码中,editText消失了。使用TextInputLayout来统计EditText中的字符数

这是我的XML代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:fab="http://schemas.android.com/apk/res-auto" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="fill_parent" 
    tools:context="com.construct.v2.activities.plan.PlanChooserActivity" 
    android:background="@android:color/white" 
    android:id="@+id/relativeLayout"> 

    <include android:id="@+id/toolbar" layout="@layout/toolbar_shadow"/> 

    <LinearLayout 
     android:layout_below="@+id/toolbar" 
     android:id="@+id/add_category_layout" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:visibility="invisible"> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/add_blue" 
     android:paddingTop="20dp" 
     android:paddingLeft="20dp" 
     android:paddingRight="20dp" 
     android:paddingBottom="20dp"/> 

    <android.support.design.widget.TextInputLayout 
     android:id="@+id/inputLayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:counterEnabled="true" 
     app:counterMaxLength="55" > 

    <EditText 
     android:id="@+id/edittext_category" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:hint="@string/add_new_category" 
     android:textColorHint="#b1b1b1" 
     android:textColor="@color/text_color" 
     android:textSize="@dimen/s_text_size" 
     android:paddingTop="20dp" 
     android:background="#ffffff" 
     android:maxLines="1" 
     android:inputType="text"/> 

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

    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/layout_bar" 
     android:layout_width="match_parent" 
     android:layout_height="60dp" 
     android:background="#f5f5f5" 
     android:layout_below="@+id/add_category_layout" 
     android:visibility="invisible"> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_marginLeft="25dp" 
      android:layout_marginRight="15dp" 
      android:gravity="center_vertical" 
      android:id="@+id/movie_name" 
      android:textSize="@dimen/s_text_size" 
      android:textColor="#b1b1b1" 
      android:text="@string/added_categories"/> 

    </LinearLayout> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/recycler_view" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:clipToPadding="false" 
     android:scrollbars="vertical" 
     android:visibility="invisible" 
     android:layout_below="@id/layout_bar"/> 

    <TextView 
     android:id="@+id/ghost" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="24sp" 
     android:fontFamily="sans-serif" 
     android:textStyle="bold" 
     android:textColor="#494949" 
     android:layout_below="@+id/toolbar" 
     android:layout_centerHorizontal="true" 
     android:paddingBottom="20dp" 
     android:paddingTop="10dp"/> 

    <ImageView 
     android:id="@+id/edit_image" 
     android:layout_width="135dp" 
     android:layout_height="100dp" 
     android:src="@drawable/empty_categorie" 
     android:layout_centerHorizontal="true" 
     android:layout_below="@+id/ghost"/> 

    <TextView 
     android:id="@+id/message_title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="24sp" 
     android:fontFamily="sans-serif" 
     android:textStyle="bold" 
     android:textColor="#494949" 
     android:text="@string/view_category_title_empty" 
     android:layout_below="@+id/edit_image" 
     android:layout_centerHorizontal="true" 
     android:paddingBottom="15dp" 
     android:paddingTop="10dp"/> 

    <TextView 
     android:id="@+id/message_body" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="16sp" 
     android:fontFamily="sans-serif" 
     android:textStyle="normal" 
     android:textColor="#494949" 
     android:lineSpacingExtra="6sp" 
     android:gravity="center_horizontal" 
     android:layout_below="@+id/message_title" 
     android:layout_centerHorizontal="true" 
     android:paddingBottom="30dp" 
     android:text="@string/view_category_message_empty" 
     android:paddingLeft="24dp" 
     android:paddingRight="24dp"/> 

</RelativeLayout> 

如果我删除textInputLayout的EditText上出现,但随着标签它没有显示。

我也接受任何其他建议来计算EditText的字符。

+1

有你在你的文件的gradle添加编译 'com.android.support:design:26.0.1' ? – Darush

+0

感谢您的回答。不,我没有试过这样做。但现在我做了,我得到了一个未能解决编译'com.android.support:design:26.0.1'。它让我安装存储库,当我点击它时什么也没有发生。 –

+0

我已经更新了答案。您需要向项目级别添加存储库{ maven {“url”https://maven.google.com“ } } build.gradle – Darush

回答

3

使用本:

<LinearLayout 
    android:id="@+id/add_category_layout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/toolbar" 
    android:visibility="visible"> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingBottom="20dp" 
     android:paddingLeft="20dp" 
     android:paddingRight="20dp" 
     android:paddingTop="20dp" 
     android:src="@drawable/add_blue" /> 

    <android.support.design.widget.TextInputLayout 
     android:id="@+id/inputLayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:counterEnabled="true" 
     app:counterMaxLength="55"> 

     <EditText 
      android:id="@+id/edittext_category" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="#ffffff" 
      android:hint="@string/add_new_category" 
      android:inputType="text" 
      android:maxLines="1" 
      android:paddingTop="20dp" 
      android:textColor="@color/text_color" 
      android:textColorHint="#b1b1b1" 
      android:textSize="@dimen/s_text_size" /> 

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

</LinearLayout> 

注意:您还需要:

1添加compile 'com.android.support:design:26.0.1'到您的应用水平的build.gradle文件。

2 - 添加到您的项目级的build.gradle文件:

repositories { 
    maven { 
     url "https://maven.google.com" 
    } 
} 
+0

感谢您的回答。点击按钮后,我将LinearLayout的可见性更改为可编程方式。默认值必须是不可见的。 –

+0

您还应该将EditText和TextInputLayout的宽度设置为android:layout_width =“match_parent” – Darush

+1

它工作,谢谢! –

相关问题