使用 LinearLayout 向 ListView 添加标题,Listview 被推离屏幕(Xamarin Android)

Posted

技术标签:

【中文标题】使用 LinearLayout 向 ListView 添加标题,Listview 被推离屏幕(Xamarin Android)【英文标题】:Adding headers to ListView with LinearLayout, Listview gets pushed off screen (Xamarin Android) 【发布时间】:2021-05-22 03:23:16 【问题描述】:

正如标题所说,我想在显示地址的列表视图中添加一些标题。似乎我基本上可以在页面上显示的列表视图或标题之间进行选择。 在下图中,我的标题(4 个文本视图)采用线性布局。当线性布局在我的代码中时,我的列表视图不显示

当我删除我的线性布局时,我的列表视图出现了!我的代码如下:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_
        android:layout_
        android:orientation="vertical"
        android:id="@+id/frameLayoutParent"
        android:background="@android:color/holo_green_dark">
    <android.support.v4.widget.SwipeRefreshLayout 
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_
        android:layout_
        android:orientation="vertical"
        android:id="@+id/swipeLayout">
        <LinearLayout
            android:layout_
            android:layout_
            android:orientation="horizontal"
            android:id="@+id/headerLinearLayout">
            <TextView
                android:text="Address Line"
                android:id="@+id/headerAddressLine"
                android:layout_
                android:layout_
                android:layout_weight="25"
                android:gravity="center_horizontal"
                android:textSize="16sp"/>
            <TextView
                android:text="City"
                android:id="@+id/headerCity"
                android:layout_
                android:layout_
                android:layout_weight="25"
                android:gravity="center_horizontal"
                android:textSize="16sp"/>
            <TextView
                android:text="State"
                android:id="@+id/headerState"
                android:layout_
                android:layout_
                android:layout_weight="25"
                android:gravity="center_horizontal"
                android:textSize="16sp"/>
            <TextView
                android:text="Zip Code"
                android:id="@+id/headerZipCode"
                android:layout_
                android:layout_
                android:layout_weight="25"
                android:gravity="center_horizontal"
                android:textSize="16sp"/>
        </LinearLayout>
        <ListView
                android:paddingTop="40dp"
                android:layout_
                android:layout_
                android:id="@+id/myListView"/>

    </android.support.v4.widget.SwipeRefreshLayout>
    <EditText
            android:layout_
            android:layout_
            android:id="@+id/editSearch"
            android:hint="Search ZipCodes"
            android:textColor="#000"
            android:editable="false"/>
</FrameLayout>

我试过了:

将列表视图的位置切换到线性布局上方 添加一个额外的线性布局以包含两个标题,然后是列表视图 在列表视图正上方添加 2dp 高度视图 弄乱元素的高度,尝试 wrap_content、match_parent 的不同组合,并设置精确的高度

感谢您的帮助!

【问题讨论】:

【参考方案1】:

根据您的代码和描述,您可以尝试在 SwipeRefreshLayout 中添加一个 LinearLayout,然后在 LinearLayout 中添加子元素,如下所示:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:orientation="vertical"
    android:id="@+id/frameLayoutParent"
    android:background="@android:color/holo_green_dark">
<android.support.v4.widget.SwipeRefreshLayout 
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    android:orientation="vertical"
    android:id="@+id/swipeLayout">
    <LinearLayout
        android:layout_
        android:layout_ 
        android:orientation="vertical">
    <LinearLayout
        android:layout_
        android:layout_
        android:orientation="horizontal"
        android:id="@+id/headerLinearLayout">
        <TextView
            android:text="Address Line"
            android:id="@+id/headerAddressLine"
            android:layout_
            android:layout_
            android:layout_weight="25"
            android:gravity="center_horizontal"
            android:textSize="16sp"/>
        <TextView
            android:text="City"
            android:id="@+id/headerCity"
            android:layout_
            android:layout_
            android:layout_weight="25"
            android:gravity="center_horizontal"
            android:textSize="16sp"/>
        <TextView
            android:text="State"
            android:id="@+id/headerState"
            android:layout_
            android:layout_
            android:layout_weight="25"
            android:gravity="center_horizontal"
            android:textSize="16sp"/>
        <TextView
            android:text="Zip Code"
            android:id="@+id/headerZipCode"
            android:layout_
            android:layout_
            android:layout_weight="25"
            android:gravity="center_horizontal"
            android:textSize="16sp"/>
    </LinearLayout>
    <ListView
           
            android:layout_
            android:layout_
            android:id="@+id/myListView"/>
    </LinearLayout>
</android.support.v4.widget.SwipeRefreshLayout>
<EditText
        android:layout_
        android:layout_ 
    android:layout_gravity="bottom"
        android:id="@+id/editSearch"
        android:hint="Search ZipCodes"
        android:textColor="#000"
        android:editable="false"/>

截图是:

我修改了editSearch EditTextandroid:layout_gravity="bottom",你可以随意改。

【讨论】:

再次感谢Cherry的帮助!成功了!

以上是关于使用 LinearLayout 向 ListView 添加标题,Listview 被推离屏幕(Xamarin Android)的主要内容,如果未能解决你的问题,请参考以下文章

LinearLayout 中的 ViewPager ListView。滑动 ViewPager 应该滑动整个页面吗?

使用 LinearLayout 向 ListView 添加标题,Listview 被推离屏幕(Xamarin Android)

java 为listvie实现基础适配器

如何获取动态添加到LinearLayout的点击子视图的ID?

如何使用android中的拖放框架从一个LinearLayout切换到另一个LinearLayout

如何使用对齐的元素动态创建 LinearLayout