【问题标题】:android button is over listviewandroid按钮在listview上
【发布时间】:2016-05-09 01:21:51
【问题描述】:

首先,我想说声抱歉,但我在设计 android 应用程序时遇到了问题:D 我希望该按钮位于列表视图下方。实际上按钮位于列表视图上方并隐藏下部区域。我该如何解决?

screenshot

我的布局文件:

<FrameLayout 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:layout_marginTop="?android:attr/actionBarSize"
    android:background="@color/white"
    tools:context="de.app.me.de.MyFragment">
    <android.support.v4.widget.SwipeRefreshLayout
        android:id="@+id/swiperefresh"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

            <ListView
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:id="@+id/listview_ticket"
                android:layout_gravity="center"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:layout_marginTop="3dp"

                />

    </android.support.v4.widget.SwipeRefreshLayout>

    <Button
        android:layout_width="match_parent"

        android:layout_height="60dp"
        android:id="@+id/btn_reply"
        android:text="Antworten"
        android:layout_gravity="center_horizontal|bottom"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:background="@color/orange"
        android:textColor="@color/white"
        android:layout_marginBottom="5dp"
        android:layout_marginTop="5dp"/>


</FrameLayout>

【问题讨论】:

  • 您应该使用 LinearLayout 并将方向设置为垂直而不是 FrameLayout。原因:最后添加的视图位于堆栈顶部。由于按钮是最后添加的,因此我们将始终在列表视图的顶部。希望我足够清楚。

标签: android xml listview layout


【解决方案1】:

使用这个:

<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"
android:orientation="vertical"
android:layout_marginTop="?android:attr/actionBarSize"
android:background="@color/white"
tools:context="de.app.me.de.MyFragment">
<android.support.v4.widget.SwipeRefreshLayout
    android:id="@+id/swiperefresh"
    android:layout_above="@+id/btn_reply"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

    <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/listview_ticket"
        android:layout_gravity="center"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="3dp"

        />

</android.support.v4.widget.SwipeRefreshLayout>

<Button
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:id="@+id/btn_reply"
    android:text="Antworten"
    android:layout_gravity="center_horizontal|bottom"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:background="@color/orange"
    android:textColor="@color/white"
    android:layout_marginBottom="5dp"
    android:layout_marginTop="5dp"/>

基本上,只需将 FrameLayout 更改为 RelativeLayout 并在底部对齐按钮,并通过将 layout_above 添加到 swipeRefreshLayout 来制作按钮上方的列表视图

【讨论】:

  • 它没有解决错误。 Maby 我的 java 代码帮助:pastebin.com/B4U6y8nj
  • 您的 id 不匹配,请匹配正确的 id 并清理项目以解决问题
  • 我已经更新了布局和java代码中的id。
  • 那么请继续聊天并将更新后的 xml 发送给我
【解决方案2】:

将此添加到您的FrameLayout

android:orientation="vertical"

并从您的ListView 中删除:

android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"

编辑

用你的按钮试试这个:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true" >

<Button
android:layout_width="match_parent"
android:layout_height="60dp"
android:id="@+id/btn_reply"
android:text="Antworten"
android:layout_gravity="center_horizontal|bottom"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:background="@color/orange"
android:textColor="@color/white"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"/>

</RelativeLayout>

【讨论】:

【解决方案3】:

您可以将父类更改为RelativeLayout。并在 ListView 中设置以下属性

android:layout_above="@+id/button"

并为按钮设置以下属性

android:layout_alignParentBottom="true"

RelativeLayout 适用于这些类型的渲染。

【讨论】:

    猜你喜欢
    • 2015-06-26
    • 2014-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多