AutoCompleteTextview多行(不是下拉列表,但是文本框)

时间:2013-12-26 09:01:47

标签: android multiline autocompletetextview

我正在使用一个自动填充功能。我想将此自动填充显示为多行。我不想将下拉列表显示为多行,但我想将文本框显示为多行。

我还在.xml文件中使用了多行属性,但它在键盘上显示了下一行键,我不想使用用户按下这个并继续下一行。

现在发生了什么

我在完成空格后在文本框中键入内容它会水平滚动。并在一行中显示所有文本。

我想要什么

假设用户输入并在完成文本框的空格后,自动光标将在下一行进行,这样用户可以一次看到所有文本而无需水平滚动。

这是我的代码。

<AutoCompleteTextView
                android:id="@+id/txtTags"
                android:layout_width="fill_parent"
                android:layout_height="44dip"
                android:layout_marginLeft="12dip"
                android:layout_marginRight="12dip"
                android:background="@drawable/borderforloginedittext"
                android:gravity="center_vertical"
                android:hint="eg: Breakfast, spicy, italian "
                android:inputType="textPersonName|textImeMultiLine"
                android:imeOptions="actionSearch"
                android:paddingLeft="70dp"
                android:scrollHorizontally="false"
                android:verticalScrollbarPosition="right"
                 android:dropDownHeight="fill_parent"
                android:dropDownWidth="match_parent"
                android:textColor="#333333"
                android:textColorHint="#999999"
                android:textSize="16sp" >
            </AutoCompleteTextView>    

我需要将action作为actionsearch,因此用户可以按键盘的搜索键。这就是为什么我不能使用textmultiline,因为它用下一行键替换了搜索键。

请提供一些参考或提示。

3 个答案:

答案 0 :(得分:4)

我没有找到任何答案。因为我想使用imeoption作为actionSearch然后我想我的自动完成行为像多行EditText。

因此,我将actionsearch作为ime选项删除并放置多行。这不是我想要的,但仍然满足至少达到50%。

<AutoCompleteTextView
            android:id="@+id/txtTags"
            android:layout_width="fill_parent"
            android:layout_height="44dip"
            android:layout_marginLeft="12dip"
            android:layout_marginRight="12dip"
            android:background="@drawable/borderforloginedittext"
            android:hint="eg: Breakfast, spicy, italian "
            android:inputType="textPersonName|textMultiLine"
            android:paddingLeft="70dp"                
             android:dropDownHeight="fill_parent"
            android:dropDownWidth="match_parent"
            android:textColor="#333333"
            android:textColorHint="#999999"
            android:textSize="16sp" >
        </AutoCompleteTextView>    

此代码为我提供了一个使用多行的选项。

答案 1 :(得分:2)

在xml中进行以下更改。

<AutoCompleteTextView
            android:id="@+id/txtTags"
    <!--remove below width as fill_parent and set fixed width as per your need-->
            android:layout_width="fill_parent"
            android:layout_height="44dip"
            android:layout_marginLeft="12dip"
            android:layout_marginRight="12dip"
            android:background="@drawable/borderforloginedittext"
            android:gravity="center_vertical"
            android:hint="eg: Breakfast, spicy, italian "
  <!-- please replace textImeMultiLine with textMultiLine.--> 
            android:inputType="textPersonName|textImeMultiLine"
            android:imeOptions="actionSearch"
            android:paddingLeft="70dp"
            android:scrollHorizontally="false"
            android:verticalScrollbarPosition="right"
             android:dropDownHeight="fill_parent"
            android:dropDownWidth="match_parent"
            android:textColor="#333333"
            android:textColorHint="#999999"
            android:textSize="16sp" >
          </AutoCompleteTextView>

答案 2 :(得分:0)

非常简单,您只需要设置

android:singleLine="false"