相对布局内的列表视图和滚动视图不覆盖屏幕
Posted
技术标签:
【中文标题】相对布局内的列表视图和滚动视图不覆盖屏幕【英文标题】:List View inside relative layout and scroll view not covering screen 【发布时间】:2018-05-29 12:28:28 【问题描述】:我有以下布局
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_
android:layout_>
<!-- The main content view -->
<FrameLayout
android:id="@+id/content_frame"
android:layout_
android:layout_ >
<RelativeLayout
android:layout_
android:layout_
android:background="@color/searchScreenBG">
<RelativeLayout
android:id="@+id/title_bar"
android:layout_
android:layout_
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginBottom="@dimen/_7sdp">
<ImageButton
android:id="@+id/ib_hamburger"
android:layout_
android:layout_
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginEnd="@dimen/_16sdp"
android:layout_marginRight="@dimen/_16sdp"
android:layout_marginTop="@dimen/_15sdp"
android:background="@android:color/transparent"
android:contentDescription="@null"
app:srcCompat="@drawable/ham_burger" />
<com.rod.com.rod.ui.views.CTextView
android:id="@+id/textView"
android:layout_
android:layout_
android:layout_alignBottom="@+id/ib_hamburger"
android:layout_centerHorizontal="true"
android:text="@string/basic_details"
android:textColor="@color/colorGreen" />
<ImageButton
android:id="@+id/ib_back"
android:layout_
android:layout_
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignTop="@+id/ib_hamburger"
android:layout_marginLeft="@dimen/_16sdp"
android:layout_marginStart="@dimen/_16sdp"
android:background="@android:color/transparent"
android:contentDescription="@null"
app:srcCompat="@drawable/left_arrow" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/reg_no_layout"
android:layout_
android:layout_
android:layout_marginTop="@dimen/_5sdp"
android:layout_below="@+id/title_bar"
android:background="@color/colorWhite">
<TextView
android:id="@+id/tv_reg_no"
android:layout_
android:layout_
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="19dp"
android:textColor="@color/colorLightGrey" />
</RelativeLayout>
<ScrollView
android:layout_
android:layout_
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/reg_no_layout"
>
<LinearLayout android:layout_
android:layout_
android:gravity="center"
android:orientation="vertical"
android:layout_marginRight="@dimen/_10sdp"
android:layout_marginLeft="@dimen/_10sdp"
android:layout_weight="1">
<RelativeLayout
android:id="@+id/basic_details"
android:layout_
android:layout_
android:layout_marginTop="@dimen/_10sdp"
android:background="@drawable/list_item_bg"
android:paddingBottom="@dimen/_10sdp">
<TextView
android:id="@+id/tv_district_label"
android:layout_
android:layout_
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="50dp"
android:layout_marginStart="50dp"
android:layout_marginTop="11dp"
android:text="@string/district"
android:textColor="@color/colorBlack"
android:textSize="@dimen/_13sdp" />
<TextView
android:id="@+id/tv_district"
android:layout_
android:layout_
android:layout_alignLeft="@+id/tv_district_label"
android:layout_alignStart="@+id/tv_district_label"
android:layout_below="@+id/tv_district_label"
android:text="TextView"
android:textColor="@color/colorLightGrey" />
<TextView
android:id="@+id/tv_tehsil_label"
android:layout_
android:layout_
android:layout_above="@+id/tv_district"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginEnd="75dp"
android:layout_marginRight="75dp"
android:text="@string/tehsil"
android:textColor="@color/colorBlack" />
<TextView
android:id="@+id/tv_tehsil"
android:layout_
android:layout_
android:layout_alignBottom="@+id/tv_district"
android:layout_alignLeft="@+id/tv_tehsil_label"
android:layout_alignStart="@+id/tv_tehsil_label"
android:text="TextView"
android:textColor="@color/colorLightGrey" />
<TextView
android:id="@+id/tv_date_label"
android:layout_
android:layout_
android:layout_alignLeft="@+id/tv_district"
android:layout_alignStart="@+id/tv_district"
android:layout_below="@+id/tv_district"
android:layout_marginTop="13dp"
android:text="@string/date"
android:textColor="@color/colorBlack" />
<TextView
android:id="@+id/tv_date"
android:layout_
android:layout_
android:layout_alignLeft="@+id/tv_date_label"
android:layout_alignStart="@+id/tv_date_label"
android:layout_below="@+id/tv_date_label"
android:text="TextView"
android:textColor="@color/colorLightGrey" />
<TextView
android:id="@+id/tv_jild_no_label"
android:layout_
android:layout_
android:layout_alignBottom="@+id/tv_date_label"
android:layout_alignLeft="@+id/tv_tehsil"
android:layout_alignStart="@+id/tv_tehsil"
android:text="@string/jild_no"
android:textColor="@color/colorBlack" />
<TextView
android:id="@+id/tv_jild_no"
android:layout_
android:layout_
android:layout_alignLeft="@+id/tv_jild_no_label"
android:layout_alignStart="@+id/tv_jild_no_label"
android:layout_below="@+id/tv_jild_no_label"
android:text="TextView"
android:textColor="@color/colorLightGrey" />
<TextView
android:id="@+id/tv_party_label"
android:layout_
android:layout_
android:layout_alignLeft="@+id/tv_date"
android:layout_alignStart="@+id/tv_date"
android:layout_below="@+id/tv_date"
android:layout_marginTop="13dp"
android:text="@string/party"
android:textColor="@color/colorBlack" />
<TextView
android:id="@+id/tv_party"
android:layout_
android:layout_
android:layout_alignLeft="@+id/tv_party_label"
android:layout_alignStart="@+id/tv_party_label"
android:layout_below="@+id/tv_party_label"
android:text="TextView"
android:textColor="@color/colorLightGrey" />
</RelativeLayout>
<RelativeLayout
android:layout_
android:layout_
android:layout_weight="1"
android:layout_below="@+id/basic_details"
android:layout_marginTop="13dp"
android:background="@drawable/list_item_bg">
<TextView
android:id="@+id/tv_member_details_label"
android:layout_
android:layout_
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="@dimen/_40sdp"
android:layout_marginStart="@dimen/_40sdp"
android:layout_marginTop="14dp"
android:text="@string/member_details"
android:textColor="@color/colorBlack"
android:textSize="@dimen/_16sdp" />
<ListView
android:id="@+id/lv_members"
android:layout_
android:layout_
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/tv_member_details_label"
android:layout_marginLeft="@dimen/_40sdp"
android:layout_marginRight="@dimen/_40sdp"
android:layout_marginStart="@dimen/_40sdp"
android:layout_marginTop="16dp"
android:divider="@color/colorLightGrey"
android:dividerHeight="@dimen/_1sdp" />
</RelativeLayout>
</LinearLayout>
</ScrollView>
</RelativeLayout>
</FrameLayout>
我想让 basic_layout 下面的相对布局覆盖整个其余屏幕。我怎样才能做到这一点。搜索后我发现我应该在我的滚动视图中放置一个线性布局,然后应该添加相对布局。但这无济于事。 我想要如下的层次结构:
----RelativeLayout
-------TitleBar
-------TextView
-------ScrollView (rest of screen)
----------RelativeLayout (upper portion of scroll view)
------------TextViews
----------RelativeLayout (rest of scrol view)
-------------TextView
-------------ListView
有什么帮助吗?
【问题讨论】:
你为什么要让一切都成为框架布局的子元素? 你想达到什么样的布局,你可以分享一个屏幕截图吗? @AryanRaj 因为我还必须集成一个抽屉 @Umair 请检查我编辑的问题 @Naila 好的,现在有几个问题。为什么要使用抽屉布局作为父布局,其次还要在上部滚动列表视图和文本视图? 【参考方案1】:实际上,问题在于您在 scrollview
中使用了 2 个布局,因此 listview
不会自行滚动,它也会限制列表高度。要解决这个问题,您需要将修复值传递给您的listview
,然后它将完全显示在指定的高度内。而其余的布局,如果你想得到你在图片中显示的完全一样,你需要使用cardview。
<RelativeLayout
android:layout_
android:layout_
android:layout_weight="1"
android:layout_below="@+id/basic_details"
android:layout_marginTop="13dp"
android:layout_marginBottom="10dp"
android:background="@drawable/list_item_bg">
<TextView
android:id="@+id/tv_member_details_label"
android:layout_
android:layout_
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="@dimen/_40sdp"
android:layout_marginStart="@dimen/_40sdp"
android:layout_marginTop="14dp"
android:text="@string/member_details"
android:textColor="@color/colorBlack"
android:textSize="16dp" />
<ListView
android:id="@+id/lv_members"
android:layout_
android:layout_
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/tv_member_details_label"
android:layout_marginLeft="@dimen/_40sdp"
android:layout_marginRight="@dimen/_40sdp"
android:layout_marginStart="@dimen/_40sdp"
android:layout_marginTop="16dp"
android:divider="@color/colorLightGrey"
android:dividerHeight="@dimen/_1sdp" />
</RelativeLayout>
【讨论】:
以上是关于相对布局内的列表视图和滚动视图不覆盖屏幕的主要内容,如果未能解决你的问题,请参考以下文章