我有一个约束布局,并且在线性布局内部,看起来像是约束在底部的条形图。除了我还有一个项目(称为SwipeFlingAdapterView),我想占用剩余空间,即从顶部开始,一直向下直到线性布局栏的顶部:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".fragments.SwipeFragment">
<LinearLayout
android:id="@+id/likeDislikeBar"
android:layout_width="match_parent"
android:layout_height="@dimen/like_dislike_height"
android:gravity="bottom"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent">
<ImageButton
android:id="@+id/dislikeButton"
android:layout_width="0dp"
android:layout_height="@dimen/like_dislike_button_height"
android:layout_weight="1"
android:background="@null"
android:src="@drawable/dislike"
android:layout_gravity="center_vertical"
android:scaleType="centerInside"/>
<ImageButton
android:id="@+id/likeButton"
android:layout_width="0dp"
android:layout_height="@dimen/like_dislike_button_height"
android:layout_weight="1"
android:background="@null"
android:src="@drawable/like"
android:layout_gravity="center_vertical"
android:scaleType="centerInside"/>
</LinearLayout>
<com.lorentzos.flingswipe.SwipeFlingAdapterView
android:id="@+id/frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toTopOf="@id/likeDislikeBar"
app:rotation_degrees="15.5"/>
</androidx.constraintlayout.widget.ConstraintLayout>
视图已正确约束,因此从理论上讲,如果我从SwipeFlingAdapterView中删除height =“ match_parent”,它将占用可用空间。将其高度设置为“ match_parent”会导致其覆盖likeDislikeBar。
有没有简单的方法可以做到这一点?我可以使用约束布局吗?
答案 0 :(得分:1)
您需要删除
app:layout_constraintEnd_toEndOf="parent"
ConstraintLayout
对于这样一个简单的布局也似乎是过大的选择。
RelativeLayout
在这里已经足够了。在这种情况下,您可以将likeDislikeBar
设置为layout_alignParentBottom
和SwipeFlingAdapterView
来设置layout_alignParentTop
和android:layout_above="@id/likeDislikeBar"
。
答案 1 :(得分:1)