Android TextInputLayout小部件
我正在尝试设计我的应用程序,我一直在使用androidsAndroid TextInputLayout小部件,android,Android,我正在尝试设计我的应用程序,我一直在使用androidswidget.TextInputLayout来编辑文本 问题是,一旦加载片段,编辑文本的提示就会跳到编辑文本的上方。这就是我想要的,我真正想要的是在用户点击它之前,提示将保留在编辑文本中,此时提示将移动到编辑文本之上 编辑文本 <android.support.design.widget.TextInputLayout android:id="@+id/text_input" android:layout_wi
widget.TextInputLayout
来编辑文本
问题是,一旦加载片段,编辑文本的提示就会跳到编辑文本的上方。这就是我想要的,我真正想要的是在用户点击它之前,提示将保留在编辑文本中,此时提示将移动到编辑文本之上
编辑文本
<android.support.design.widget.TextInputLayout
android:id="@+id/text_input"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Search..."/>
</android.support.design.widget.TextInputLayout>
public class SearchRecipes extends ListFragment{
public SearchRecipes() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_search_recipes, container, false);
String[] values = new String[] { "Recipe1", "Recipe2", "Recipe3" };
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, values);
setListAdapter(adapter);
return rootView;
}
}
片段
<android.support.design.widget.TextInputLayout
android:id="@+id/text_input"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Search..."/>
</android.support.design.widget.TextInputLayout>
public class SearchRecipes extends ListFragment{
public SearchRecipes() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_search_recipes, container, false);
String[] values = new String[] { "Recipe1", "Recipe2", "Recipe3" };
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, values);
setListAdapter(adapter);
return rootView;
}
}
公共类SearchRecipes扩展了ListFragment{
公共搜索配方(){
//必需的空公共构造函数
}
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
视图根视图=充气机。充气(R.layout.fragment\u search\u recipes,container,false);
字符串[]值=新字符串[]{“Recipe1”、“Recipe2”、“Recipe3”};
ArrayAdapter=新的ArrayAdapter(getActivity(),
android.R.layout.simple_list_item_1,值);
setListAdapter(适配器);
返回rootView;
}
}
尝试将android:focusable=“false”
添加到编辑文本和清单中,为活动添加windowSoftInputMode=“stateHidden”
。这应该会像您预期的那样工作。当应用程序启动时,您是否真的在编辑文本中设置了一些文本?也许共享初始化代码会有所帮助。通常当你有一个edittext时,它会将焦点吸引到它。您可能希望首先将焦点放在另一个视图上。然后,当用户单击它时,它将具有焦点并显示提示。我添加了调用上面包含编辑文本的布局的片段,并且我根本没有指向编辑文本。谢谢你的建议,克莉丝蒂,我会试着把它指向列表或其他元素之一。谢谢你的建议。我在片段中使用编辑文本,因此无法将windowSoftInputMode=“stateHidden”
添加到清单中。但是通过添加android:focusable=“false”
它确实阻止了提示跳起来,但现在我无法输入edittext
setOnclickListener并以编程方式启用焦点