Android TextInputLayout小部件

Android TextInputLayout小部件,android,Android,我正在尝试设计我的应用程序,我一直在使用androidswidget.TextInputLayout来编辑文本 问题是,一旦加载片段,编辑文本的提示就会跳到编辑文本的上方。这就是我想要的,我真正想要的是在用户点击它之前,提示将保留在编辑文本中,此时提示将移动到编辑文本之上 编辑文本 <android.support.design.widget.TextInputLayout android:id="@+id/text_input" android:layout_wi

我正在尝试设计我的应用程序,我一直在使用androids
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并以编程方式启用焦点