我遵循autocompletetextview的官方instruction在我的项目中创建一个新的。我认为这很容易,但是当我运行代码时,我发现结果与我的预期相去甚远。
您可以在图片上看到,当我在文本视图中键入“ f”时,尽管我已经添加了“ setDropDownWidth(100)”,但应该显示“ Franch”的下拉视图仅显示“ Fr ..”。到textview。
我真的很想知道会发生什么以及如何解决。
下面是我的代码:
xml:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<AutoCompleteTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/countries_list"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity:
package com.example.autocompletetextview;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
public class MainActivity extends AppCompatActivity {
private static final String[] COUNTRIES = new String[] {
"Belgium", "France", "Italy", "Germany", "Spain"
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, COUNTRIES);
AutoCompleteTextView textView = (AutoCompleteTextView)
findViewById(R.id.countries_list);
textView.setThreshold(1);
textView.setDropDownWidth(100);
textView.setAdapter(adapter);
}
}
由于此textView.setDropDownWidth(100)
而发生。它太小了,所以文本将被换行。
我的解决方案是将其删除,因此自动完成功能将包装您的edittext宽度,或将setDropDownWidth
设置为较大的值。