输入时使字符计数可见

时间:2017-02-16 23:53:14

标签: android xml android-layout android-relativelayout

我有一个用于描述的EditText。

在它下面,我有一个TextView显示在EditText中输入的字符数。

示例:

this description

用户应该能够在输入过程中看到实时字符数,但此时键盘隐藏了被追踪的计数器:

enter image description here

我该怎么做才能纠正这个问题?

这是我的xml代码:

    <EditText
        android:id="@+id/MyDescription"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@null"
        android:maxLength="500"
        android:hint="Description" />

    <TextView
        android:id="@+id/MyDescriptionCharCount"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="0/500"
        android:layout_below="@id/MyDescription"
        android:layout_marginTop="5dp"
        android:layout_marginRight="3dp"
        android:layout_marginEnd="3dp"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

父亲是RelativeLayout。

2 个答案:

答案 0 :(得分:1)

您必须使用TextWatcher扩展该类并覆盖afterTextChanged(),beforeTextChanged(),onTextChanged()。

    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xsl:template match="/">
        <fo:root>
            <fo:layout-master-set>
                <fo:simple-page-master master-name="page" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="0.5in" margin-right="0.5in">
                    <fo:region-body region-name="body" margin-top="0.5in" margin-bottom="0.5in" margin-left="0.5in" margin-right="0.5in"/>
                </fo:simple-page-master>
            </fo:layout-master-set>
            <fo:page-sequence master-reference="page">
                <fo:flow flow-name="body">
                    <xsl:apply-templates/>
                </fo:flow>
            </fo:page-sequence>
        </fo:root>
    </xsl:template>
    <xsl:template match="items">
        <fo:block space-before="6pt" border-top="3pt solid green">
            <fo:table>
                <fo:table-body>
                    <xsl:apply-templates/>
                </fo:table-body>
            </fo:table>
        </fo:block>
    </xsl:template>
    <xsl:template match="title">
        <fo:table-row>
            <xsl:apply-templates select="@*"/>
        </fo:table-row>
    </xsl:template>
    <xsl:template match="@ID | @location | @price">
        <fo:table-cell border="1pt solid black">
            <fo:block>
                <xsl:value-of select="."/>
            </fo:block>
        </fo:table-cell>
    </xsl:template>
</xsl:stylesheet>

});

您可以尝试以下布局。

EditText MyDescription = (EditText)findViewById(R.id. MyDescription);
MyDescription.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
    // TODO Auto-generated method stub
}

@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    // TODO Auto-generated method stub
}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
   // s.toString().trim().length();
} 

答案 1 :(得分:0)

要查看字符计数器的Textview,请在清单文件的activity标记中添加以下行。

android:windowSoftInputMode="adjustResize|stateAlwaysHidden"

在添加软输入键盘后,这将自动将您的活动布局向上移动以修复可用高度。有关此检查的更多详细信息here.