我有一个带有工具栏的片段,里面有一个recyclerView。
我使用虚拟数据填充recyclerView,然后尝试显示它们。出于某种原因,recyclerView的最后一个元素正在被截止。
这是片段的XML:
<?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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background_1"
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar_layout"
android:layout_width="match_parent"
android:layout_height="@dimen/height_of_app_bar"
android:fitsSystemWindows="true"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="@color/primary"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
android:id="@+id/backdrop"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:scaleType="centerCrop"
android:src="@drawable/placeholder_rect_header"
app:layout_collapseMode="parallax"/>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/simpleList"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
</android.support.design.widget.CoordinatorLayout>
列表中的项目非常简单:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="@color/background_1"
android:orientation="horizontal"
android:padding="@dimen/space_for_a_bit_of_air">
<ImageView
android:id="@+id/album_cover"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center_vertical"
android:scaleType="fitXY"
android:src="@drawable/placeholder_album_cover"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="@dimen/space_for_distinguishing_stuff"
android:orientation="vertical">
<TextView
android:id="@+id/album_title"
style="@style/titleText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sample_text_c"/>
<TextView
android:id="@+id/album_year"
style="@style/subtitleText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sample_text_a"/>
</LinearLayout>
</LinearLayout>
我现在在列表的末尾,但最后一个元素看起来仍然是截止的。
我使用的是2015-09-23 google libraries的最新版本,23.0.1,(即com.android.support:recyclerview-v7:23.0.1),以及build.gradle的以下配置:
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true// Enabling multidex support
}
任何帮助都会非常感激,因为我对这个问题感到困惑:(
好的,在将代码清理到基本要素并消除复杂性之后,我发现了问题:它是错误标志和缺失或额外属性的组合。以下适用于Android 4.x和5.x:
<?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="@color/background_1"
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar_layout"
android:layout_width="match_parent"
android:layout_height="@dimen/height_of_app_bar"
android:fitsSystemWindows="true">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:collapsedTitleTextAppearance="@style/Title.collapsed"
app:contentScrim="@color/primary"
app:expandedTitleMarginStart="48dp"
app:expandedTitleTextAppearance="@style/Title.Expanded"
app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed">
<ImageView
android:id="@+id/backdrop"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:scaleType="centerCrop"
android:src="@drawable/artistic_4"
app:layout_collapseMode="parallax"/>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/height_of_app_bar"
android:background="@drawable/gradient"/>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/simpleList"
style="@style/genericRecyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:listitem="@layout/item_discography_album"/>
</android.support.design.widget.CoordinatorLayout>
简而言之,android:fitsSystemWindows =&#34; true&#34;应该只在CoordinatorLayout,AppBarLayout和theCollapsingToolbarLayout(我们希望根据Android 5.x上的屏幕进行调整),app:layout_scrollFlags应设置为&#34;滚动| enterAlways | enterAlwaysCollapsed&# 34;并且工具栏应该具有高度,actionBar的高度。最后,最好尽量保持RecyclerView的清洁,以便控制每个行项目的布局间距。
答案 0 :(得分:20)
尝试将RecyclerView
高度更改为"wrap_content"
,并将AppBarLayout
高度添加为保证金底部。
<android.support.v7.widget.RecyclerView
android:id="@+id/simpleList"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/height_of_app_bar"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
列表项的截止部分是AppBarLayout
的高度。
答案 1 :(得分:4)
这对我有用。 将recyclerView的高度和宽度都设置为0dp
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_materias"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="20dp"
android:background="@color/secondaryLightColor"
app:layout_constraintBottom_toTopOf="@id/bottom_navigation"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/guideline6"></android.support.v7.widget.RecyclerView>
答案 2 :(得分:2)
将RelativeLayout用作RecycerView的父级。对我来说这是正常的工作。
答案 3 :(得分:2)
如果您使用约束布局,请确保layout_height
为0dp
并
layout_constraintBottom_toBottomOf
约束设置正确。
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/titleTextView"
/>
答案 4 :(得分:2)
设置layout_height="match_parent"
,然后添加layout_marginBottom="?attr/actionBarSize"
或
50dp
将补偿ToolBar
迫使RecyclerView
下移以切断最后一个视图。
如果您启用了nestedScrollingEnabled="false"
工具栏,请另外设置hideOnScroll
。
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/my_recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="?attr/actionBarSize"
android:nestedScrollingEnabled="false" />
答案 5 :(得分:1)
在ConstraintLayout中使用RecyclerView时,我遇到了同样的问题(甚至从列表中丢失了整个ViewHolder元素)。正如Sila Siebert所述,将RecyclerView的layout_width和layout_height设置为零即可达到目的。有点混乱,因为编辑器在XML文本显示0dp之后跳回了“ match_constraints”。不要让它让您感到困惑,它应该可以工作。
答案 6 :(得分:1)
我有一个对话框片段,其中包含RecyclerView。对于我最初的总体约束布局,上述解决方案均无效,因此我将其更改为线性布局,该布局没有问题。此布局包含工具栏和recyclerview。
答案 7 :(得分:1)
我也遇到了同样的问题,我创建了一个LinearLayout
并将RecyclerView
放在其中,这解决了我的问题。我希望这也可以解决其他问题。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/companyLabelView">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/companiesRecyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/_8dp"
android:layout_marginStart="@dimen/_8sdp"
android:layout_marginLeft="@dimen/_8sdp"
android:layout_marginTop="@dimen/_8sdp"
android:layout_marginEnd="@dimen/_8sdp"
android:layout_marginRight="@dimen/_8sdp"
android:layout_marginBottom="@dimen/_8sdp"
android:overScrollMode="never"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:spanCount="3"
tools:itemCount="10"
tools:listitem="@layout/company_item_view" />
</LinearLayout>
答案 8 :(得分:0)
我遇到了同样的问题,经过大量搜索,我发现持有recycleView的父视图没有像我使用constraintLayout那样受到适当约束,
我的视图层次结构就像
constraintLayout->pageViewer with tab->fragment->recyclerView
在我的情况下,pageViewer的约束不正确
要解决此问题,请检查父母是否正确疏远或受到限制的天气
答案 9 :(得分:0)
将约束布局(父布局)更改为线性布局为我解决了这个问题。
答案 10 :(得分:0)
在这种情况下,我在 recyclerView 上添加了一个约束,使其不会在屏幕外重叠
app:layout_constraintBottom_toBottomOf="parent"
答案 11 :(得分:0)
android:paddingBottom ="112dp"
不可见区域的高度<在我的情况下为 112dp>
在您的回收站视图中添加以上内容
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/main_recycler"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:paddingBottom="112dp"
app:layout_constraintTop_toBottomOf="@+id/simpleSearchView" />
答案 12 :(得分:0)
android:paddingBottom ="112dp"
不可见区域的高度<在我的情况下为 112dp>
答案 13 :(得分:0)
将宽度和高度设置为 match_parent 并在底部添加一个边距,顶部栏的值。这使我免于数小时的辛勤工作。
<android.support.v7.widget.RecyclerView
android:id="@+id/simpleList"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="App_bar_height
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
答案 14 :(得分:0)
我有类似的问题。将android:minHeight="?attr/actionBarSize"
添加到CollapsingToolbarLayout很有帮助。
答案 15 :(得分:0)
我遇到了同样的问题,答案也有所帮助。
我通过将android:minHeight="?actionBarSize"
添加到CollapsingToolbarLayout
来解决了这个问题。
也许这会帮助某人。
答案 16 :(得分:0)
我知道我迟到了,但是今天我遇到了同样的问题。我有一个{
"ProjectDocumentId": "7da0011b-7105-4b6c-af13-12b5ac50b608",
"ProjectId": "ed1e0e47-ff1c-47be-b5e9-c235aef76161",
"ProjectDocumentUpdate": {
"UpdatedByFullName" : "Unnati"
}, {
"UpdatedByFullName" : "Eugene"
},
{
"UpdatedByFullName" : "Meghana"
}
}
,一个工具栏,一个recyclerview。因此,我使用了ConstrantLayout
,并且为了防止recyclerview与顶部栏重叠,我使用了android:layout_height="match_parent"
所以整个代码看起来像这样:
app:layout_constraintTop_toBottomOf="@id/toolbar"
android:layout_marginTop="?attr/actionBarSize"
我希望这会有所帮助。
答案 17 :(得分:0)
您缺少底部约束。
您应该添加:
app:layout_constraintBottom_toBottomOf="parent"
上的recylerview
。
答案 18 :(得分:0)
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="150dp"
android:layout_marginStart="@dimen/_20"
android:layout_marginEnd="@dimen/_20"
app:layout_constraintTop_toBottomOf="@+id/linearLayout">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_Bookingagain"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:focusableInTouchMode="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent" />
</RelativeLayout>
答案 19 :(得分:0)
我尝试了大多数可能的站点中所有可用的选项,但没有得到解决方案。 然后,我想可以使用底部填充吗?是的,这对我有用。
我正在与您共享代码。 除了高度,宽度和填充之外,不需要任何其他属性。
android:paddingBottom =“?attr / actionBarSize”
<android.support.v7.widget.RecyclerView
android:id="@+id/your id name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="?attr/actionBarSize"
app:layout_constraintTop_toBottomOf="@+id/your field" />
答案 20 :(得分:0)
您可以尝试按照预期的方式进行操作,
<android.support.v7.widget.RecyclerView
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/layout_header">
</android.support.v7.widget.RecyclerView>
答案 21 :(得分:0)
确保您同时具有RelativeLayout和RecyclerView的layout_height作为wrap_content
答案 22 :(得分:0)
创建一个FrameLayout,将RecycerView放入其中,并为宽度和高度设置match_parent。您可以根据需要调整框架布局的大小。
答案 23 :(得分:0)
将android:layout_gravity =“top”添加到回收站视图。如果这不起作用,请添加android:layout_gravity =“fill_verticle”
答案 24 :(得分:-1)
GET _cluster/stats?filter_path=indices.count