Android 文本视图,其下方的列表视图遮挡了换行内容高度

Android 文本视图,其下方的列表视图遮挡了换行内容高度,android,listview,android-relativelayout,Android,Listview,Android Relativelayout,我没有看到我的“Hello World”文本视图。 我用元素填充的listview就是所有显示的内容 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="mat

我没有看到我的“Hello World”文本视图。 我用元素填充的listview就是所有显示的内容

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    tools:context="lister.quantumproductions.com.lister.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:layout_above="@+id/recipe_list_view"></TextView>

    <ListView
        android:id="@+id/recipe_list_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></ListView>

</RelativeLayout>



public class MainActivity extends AppCompatActivity {
    private ListView mListView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        loadListView();
    }

    private void loadListView() {
        mListView = findViewById(R.id.recipe_list_view);
        final ArrayList<Recipe> recipes = Recipe.getRecipesFromFile("recipes.json", this);

        RecipeAdapter a = new RecipeAdapter(this, recipes);
        mListView.setAdapter(a);
    }
}

工具:context=“lister.quantumproductions.com.lister.MainActivity”>
公共类MainActivity扩展了AppCompatActivity{
私有列表视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
loadListView();
}
私有void loadListView(){
mListView=findviewbyd(R.id.recipe\u list\u视图);
最终ArrayList recipes=Recipe.getRecipesFromFile(“recipes.json”,this);
RecipeAdapter a=新RecipeAdapter(此为配方);
mListView.setAdapter(a);
}
}

您的ListView占据了整个屏幕,然后您说TextView应该位于ListView的上方,这使得它出现在屏幕之外,因此不可见

您需要反转依赖关系


因此,与ListView上方的TextView不同,ListView应该位于TextView下方。

RelativeLayout导致最后一项覆盖上一项(如果其宽度和高度匹配)。更改顺序或使用LinearLayout代替。

尝试此操作

<TextView
    android:id="@+id/text_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"></TextView>

<ListView
    android:layout_below="@id/text_view"
    android:id="@+id/recipe_list_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"></ListView>

您可以使用LinearLayout作为垂直方向的父对象,它将完美地工作:-

我已经更正了您的xml代码,请使用此代码

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="lister.quantumproductions.com.lister.MainActivity">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    android:layout_above="@+id/recipe_list_view"></TextView>

<ListView
    android:id="@+id/recipe_list_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"></ListView>
</LinearLayout>

它将工作,同时显示textview和listview

如果您只想使用相对布局,只需使listview也包装内容即可

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
tools:context="lister.quantumproductions.com.lister.MainActivity">

<TextView
    android:id="@+id/recipe_text_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"></TextView>

<ListView
    android:id="@+id/recipe_list_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/recipe_text_view"></ListView>

</RelativeLayout>

工具:context=“lister.quantumproductions.com.lister.MainActivity”>