使用 LinearLayout 添加 headers 到 ListView,Listview 被推离屏幕 (Xamarin Android)
Adding headers to ListView with LinearLayout, Listview gets pushed off screen (Xamarin Android)
正如标题所说,我想向显示地址的列表视图添加一些 headers。看来我基本上可以在页面上显示的列表视图或 headers 之间进行选择。
在下图中,我的 headers(4 个文本视图)呈线性布局。当线性布局在我的代码中时,我的列表视图不显示
当我删除我的线性布局时,我的列表视图出现了!我的代码如下:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
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_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/swipeLayout">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/headerLinearLayout">
<TextView
android:text="Address Line"
android:id="@+id/headerAddressLine"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="25"
android:gravity="center_horizontal"
android:textSize="16sp"/>
<TextView
android:text="City"
android:id="@+id/headerCity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="25"
android:gravity="center_horizontal"
android:textSize="16sp"/>
<TextView
android:text="State"
android:id="@+id/headerState"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="25"
android:gravity="center_horizontal"
android:textSize="16sp"/>
<TextView
android:text="Zip Code"
android:id="@+id/headerZipCode"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="25"
android:gravity="center_horizontal"
android:textSize="16sp"/>
</LinearLayout>
<ListView
android:paddingTop="40dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/myListView"/>
</android.support.v4.widget.SwipeRefreshLayout>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editSearch"
android:hint="Search ZipCodes"
android:textColor="#000"
android:editable="false"/>
</FrameLayout>
我试过:
- 将我的列表视图的定位切换到线性布局上方
- 添加一个额外的线性布局以包含 headers,然后是列表视图
- 在列表视图的正上方添加一个 2dp 高度的视图
- 调整元素的高度,尝试 wrap_content、match_parent 的不同组合,并设置准确的高度
感谢任何帮助!
根据你的代码和描述,你可以尝试在SwipeRefreshLayout中添加一个LinearLayout,然后在LinearLayout中添加子元素,像这样:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
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_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/swipeLayout">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/headerLinearLayout">
<TextView
android:text="Address Line"
android:id="@+id/headerAddressLine"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="25"
android:gravity="center_horizontal"
android:textSize="16sp"/>
<TextView
android:text="City"
android:id="@+id/headerCity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="25"
android:gravity="center_horizontal"
android:textSize="16sp"/>
<TextView
android:text="State"
android:id="@+id/headerState"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="25"
android:gravity="center_horizontal"
android:textSize="16sp"/>
<TextView
android:text="Zip Code"
android:id="@+id/headerZipCode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="25"
android:gravity="center_horizontal"
android:textSize="16sp"/>
</LinearLayout>
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/myListView"/>
</LinearLayout>
</android.support.v4.widget.SwipeRefreshLayout>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:id="@+id/editSearch"
android:hint="Search ZipCodes"
android:textColor="#000"
android:editable="false"/>
截图为:
我修改editSearch EditTextandroid:layout_gravity="bottom"
,你想怎么改就怎么改。
正如标题所说,我想向显示地址的列表视图添加一些 headers。看来我基本上可以在页面上显示的列表视图或 headers 之间进行选择。 在下图中,我的 headers(4 个文本视图)呈线性布局。当线性布局在我的代码中时,我的列表视图不显示
当我删除我的线性布局时,我的列表视图出现了!我的代码如下:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
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_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/swipeLayout">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/headerLinearLayout">
<TextView
android:text="Address Line"
android:id="@+id/headerAddressLine"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="25"
android:gravity="center_horizontal"
android:textSize="16sp"/>
<TextView
android:text="City"
android:id="@+id/headerCity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="25"
android:gravity="center_horizontal"
android:textSize="16sp"/>
<TextView
android:text="State"
android:id="@+id/headerState"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="25"
android:gravity="center_horizontal"
android:textSize="16sp"/>
<TextView
android:text="Zip Code"
android:id="@+id/headerZipCode"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="25"
android:gravity="center_horizontal"
android:textSize="16sp"/>
</LinearLayout>
<ListView
android:paddingTop="40dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/myListView"/>
</android.support.v4.widget.SwipeRefreshLayout>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editSearch"
android:hint="Search ZipCodes"
android:textColor="#000"
android:editable="false"/>
</FrameLayout>
我试过:
- 将我的列表视图的定位切换到线性布局上方
- 添加一个额外的线性布局以包含 headers,然后是列表视图
- 在列表视图的正上方添加一个 2dp 高度的视图
- 调整元素的高度,尝试 wrap_content、match_parent 的不同组合,并设置准确的高度
感谢任何帮助!
根据你的代码和描述,你可以尝试在SwipeRefreshLayout中添加一个LinearLayout,然后在LinearLayout中添加子元素,像这样:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
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_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/swipeLayout">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/headerLinearLayout">
<TextView
android:text="Address Line"
android:id="@+id/headerAddressLine"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="25"
android:gravity="center_horizontal"
android:textSize="16sp"/>
<TextView
android:text="City"
android:id="@+id/headerCity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="25"
android:gravity="center_horizontal"
android:textSize="16sp"/>
<TextView
android:text="State"
android:id="@+id/headerState"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="25"
android:gravity="center_horizontal"
android:textSize="16sp"/>
<TextView
android:text="Zip Code"
android:id="@+id/headerZipCode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="25"
android:gravity="center_horizontal"
android:textSize="16sp"/>
</LinearLayout>
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/myListView"/>
</LinearLayout>
</android.support.v4.widget.SwipeRefreshLayout>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:id="@+id/editSearch"
android:hint="Search ZipCodes"
android:textColor="#000"
android:editable="false"/>
截图为:
我修改editSearch EditTextandroid:layout_gravity="bottom"
,你想怎么改就怎么改。