我有一个relativelayout包含在其中: 1)在其中有viewflipper的linearlayout 2)recycleview
我正在尝试使用鳍状肢进行线性布局,屏幕高度为30% 并且recycleview采用剩余的大小屏幕
所以我在这两个之间使用了framelayout只是为了划分屏幕,但这不是很好的解决方案所以我删除了framelayout并使用了weightlayout和linearlayout和recycleview但是当我将linearlayout的高度设置为0dp时,viewflipper的图像就消失了< / p>
这是代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/content_navigation"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="giga.net.world.gn.MainActivity"
tools:showIn="@layout/app_bar_main">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/content_frame">
<ViewFlipper
android:id="@+id/slider"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:id="@+id/image1"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:scaleType="centerCrop"
android:src="@drawable/world" />
<ImageView
android:id="@+id/image2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="centerCrop"
android:src="@drawable/tv" />
</ViewFlipper>
</LinearLayout>
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"/>
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerVertical="true"
android:padding="5dp"
android:layout_below="@+id/content_frame"
android:scrollbars="vertical" />
</RelativeLayout>
我该怎么做才能使鳍状肢占据屏幕高度的30%,并使再循环视图占据屏幕高度的70% framelayout并不重要我可以删除它,如果它需要
答案 0 :(得分:1)
你潜水了。您必须为子视图设置权重,它将根据方向划分视图。见下面的布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="10">
<ViewFlipper
android:id="@+id/slider"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="3">
<ImageView
android:id="@+id/image1"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:scaleType="centerCrop"
android:src="@drawable/world" />
<ImageView
android:id="@+id/image2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="centerCrop"
android:src="@drawable/tv" />
</ViewFlipper>
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_below="@+id/content_frame"
android:layout_centerVertical="true"
android:layout_weight="7"
android:padding="5dp"
android:scrollbars="vertical" />
答案 1 :(得分:0)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/content_navigation"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ViewFlipper
android:id="@+id/slider"
android:layout_width="fill_parent"
android:layout_weight="3"
android:layout_height="0dp">
<ImageView
android:id="@+id/image1"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:scaleType="centerCrop"
android:src="@mipmap/ic_launcher" />
<ImageView
android:id="@+id/image2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="centerCrop"
android:src="@drawable/pic" />
</ViewFlipper>
<!--<FrameLayout-->
<!--android:id="@+id/content_frame"-->
<!--android:layout_width="0dp"-->
<!--android:layout_height="0dp"-->
<!--android:layout_centerHorizontal="true"-->
<!--android:layout_centerVertical="true"/>-->
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="7"
android:padding="5dp"
android:scrollbars="vertical" />
</LinearLayout>
</RelativeLayout>
答案 2 :(得分:0)
使用LinearLayout作为根元素并将android:weightSum
设置为值“10”
和android:orientation
到“垂直”
然后,您必须将ViewFlipper和RecyclerView的高度设置为0 dp,并将属性android:layout_weight
添加到“3”和“7”。这意味着ViewFlipper将占据3/10的高度,而RecyclerView将占用7/10。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/content_navigation"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:orientation="vertical"
android:weightSum="10">
<ViewFlipper
android:id="@+id/slider"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="3">
<ImageView
android:id="@+id/image1"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:scaleType="centerCrop"
/>
<ImageView
android:id="@+id/image2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="centerCrop"
/>
</ViewFlipper>
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="7"
android:padding="5dp"
android:scrollbars="vertical" />
</LinearLayout>