我很难调整活动的布局,我想要的是将内容放在“scrollview”中,并在页面底部有一个按钮。我的布局几乎就是这样,发生的问题是,当内容到达某一点时,它会落后于我想要的按钮,并且无论大小如何,内容始终保持在按钮上方。
我的布局:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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"
android:background="@drawable/fundo_degrade"
android:fitsSystemWindows="true"
tools:context="br.com.cifrasemusica.cifrasmusica_teoriamusical.activity.ExercicioActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar">
<include
android:id="@+id/Toolbar_Exercicio"
layout="@layout/toolbar">
</include>
</android.support.design.widget.AppBarLayout>
<ScrollView
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior = "@string/appbar_scrolling_view_behavior">
<android.support.v7.widget.RecyclerView
android:id="@+id/RecyclerView_Exercicio"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.v7.widget.RecyclerView>
</ScrollView>
<Button
android:layout_margin="5dp"
android:id="@+id/Button_enviarExercicio"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:text="CONFIRMAR"
android:background="@drawable/fundo_botao"
android:layout_alignParentBottom="true" />
</android.support.design.widget.CoordinatorLayout>
答案 0 :(得分:1)
从RecyclerView
移除ScrollView
,无需使用ScrollView
<强> FYI 强>
RecyclerView
有自己的滚动行为,而ScrollView
只有一个孩子RecyclerView
,所以我觉得在RecyclerView
内使用ScrollView
毫无意义
它落后于我想要的按钮,并且无论大小如何,内容始终保持在按钮上方。
此外,尝试向bottom-padding
添加一些bottom-margin
或RecyclerView
,以在屏幕末尾显示您的最低内容
示例代码
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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"
android:background="@drawable/fundo_degrade"
android:fitsSystemWindows="true"
tools:context="br.com.cifrasemusica.cifrasmusica_teoriamusical.activity.ExercicioActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar">
<include
android:id="@+id/Toolbar_Exercicio"
layout="@layout/toolbar">
</include>
</android.support.design.widget.AppBarLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/RecyclerView_Exercicio"
android:layout_width="match_parent"
android:paddingBottom="80dp"
android:clipToPadding="false"
android:layout_height="wrap_content">
</android.support.v7.widget.RecyclerView>
<Button
android:layout_margin="5dp"
android:id="@+id/Button_enviarExercicio"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="bottom"
android:text="CONFIRMAR"
android:background="@drawable/fundo_botao"
android:layout_alignParentBottom="true" />
</android.support.design.widget.CoordinatorLayout>
答案 1 :(得分:1)
如果您需要ScrollView,则可以使用NestedScrollView代替Scrollview
但如果里面只有一个recyclerview,那么我建议不要使用Scrollview
。因为Scrollview
不是为了这个目的
无论如何,我都希望内容始终位于按钮上方 大小
为此您可以尝试以下解决方案:
android:paddingBottom="50dp"
android:clipToPadding="false"
recyclerview
中的
答案 2 :(得分:1)
- 有一件事用线性布局替换协调器布局,方向垂直并删除滚动视图,因为recycleview具有默认滚动属性,因此使用下面的代码将权重1放到回收视图中,您就可以实现所需。
<?xml version="1.0" encoding="utf-8"?>
<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:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/fundo_degrade"
android:fitsSystemWindows="true"
android:orientation="vertical">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar">
<include
android:id="@+id/Toolbar_Exercicio"
layout="@layout/toolbar">
</include>
</android.support.design.widget.AppBarLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/RecyclerView_Exercicio"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<Button
android:layout_margin="5dp"
android:id="@+id/Button_enviarExercicio"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:text="CONFIRMAR"
android:background="@drawable/fundo_botao"
android:layout_alignParentBottom="true" />
</LinearLayout>
答案 3 :(得分:1)
在布局
中进行以下更改 <?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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"
android:background="@drawable/fundo_degrade"
android:fitsSystemWindows="true"
tools:context="br.com.cifrasemusica.cifrasmusica_teoriamusical.activity.ExercicioActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar">
<include
android:id="@+id/Toolbar_Exercicio"
layout="@layout/toolbar">
</include>
</android.support.design.widget.AppBarLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/RecyclerView_Exercicio"
android:layout_marginBottom="50dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Button
android:layout_margin="5dp"
android:id="@+id/Button_enviarExercicio"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:text="CONFIRMAR"
android:background="@drawable/fundo_botao"
android:layout_alignParentBottom="true" />
</android.support.design.widget.CoordinatorLayout>
答案 4 :(得分:0)
首先删除Scrollview
因为回收有自己的滚动属性,现在为了更容易我将其更改为相对布局,将recycelerView
设置在按钮上方,以便按钮永远不会落后于{{1}有更多包含它总是低于recycelerView
,看看。
recycelerView
希望它能帮到你!!
答案 5 :(得分:0)
您不需要recycelerView
和LinearLayout
中的按钮,并在android:orientation="vertical"
中添加LinearLayout
,如下所示
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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"
android:background="@drawable/fundo_degrade"
android:fitsSystemWindows="true"
tools:context="br.com.cifrasemusica.cifrasmusica_teoriamusical.activity.ExercicioActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar">
<include
android:id="@+id/Toolbar_Exercicio"
layout="@layout/toolbar">
</include>
</android.support.design.widget.AppBarLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/RecyclerView_Exercicio"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.v7.widget.RecyclerView>
<Button
android:layout_margin="5dp"
android:id="@+id/Button_enviarExercicio"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="CONFIRMAR"
android:background="@drawable/fundo_botao"
/>
</LinearLayout/>
</android.support.design.widget.CoordinatorLayout>