相关疑难解决方法(0)

RecyclerView onItemClick效果在L中

也许之前已经提出过这个问题,但我找不到准确的答案.我已经RecyclerView在我的L测试应用程序中将小部件实现为列表,并且当您单击列表中的项目时我想获得"材料效果".我onClickListener在我的ViewHolder创建中实现了一个并设置了属性

android:background="?android:attr/selectableItemBackground"

作为我的列表项布局的背景(到父级).

但这一切都没有奏效.当我点击没有发生的项目'.没有效果,全息,材料,没有...请指出我在这里做错了什么......谢谢

android-recyclerview

24
推荐指数
2
解决办法
2万
查看次数

如何在回收器视图中删除动画时隐藏分隔符

RecyclerView默认情况下,只要你提供一个很好的删除动画,setHasStableIds(true)并提供正确的实现getItemId.

最近,我RecyclerView通过/sf/answers/1892606131/添加了divider

结果如下

https://www.youtube.com/watch?v=u-2kPZwF_0w

https://youtu.be/c81OsFAL3zY(为了在删除动画播放时使分隔符更加清晰,我暂时将RecyclerView背景更改为红色)

当播放删除动画时,分隔符仍然可见.

但是,如果我查看GMail示例,当正在播放删除动画时,分隔线不再可见.它们被覆盖在纯色区域.

https://www.youtube.com/watch?v=cLs7paU-BIg

我可以知道,当删除动画播放时,如何通过不显示分隔线来实现与GMail相同的效果?

android android-recyclerview

22
推荐指数
2
解决办法
4450
查看次数

如何在项目动画的持续时间内禁用RecyclerView项目装饰图纸

我有一些基本的项目装饰,在ItemDecoration.onDrawOver方法中绘制一些东西.

RecyclerView也是DefaultItemAnimator它的基础.动画正在运作,一切都很棒.除了一件事.

当所有现有项目与此适配器中设置的新项目交换时,动画正在运行时将显示装饰.

我需要一种隐藏它们的方法.当动画结束时,需要显示它们,但是当它运行时,它们必须被隐藏.

我尝试了以下方法:

public void onDrawOver(..., RecyclerView.State state) {
    if(state.willRunPredictiveAnimations() || state.willRunSimpleAnimations()) {
        return;
    }
    // else do drawing stuff here
}
Run Code Online (Sandbox Code Playgroud)

但这没有帮助.装饰仅在短时间的动画中被删除,但在它仍在运行时再次出现.

另外,setup还包括RecyclerView.AdapterhasStableIds()(如果该位很重要).

animation android android-recyclerview

21
推荐指数
2
解决办法
9110
查看次数

Android ViewPager2 setPageMargin 未解决

我想使用View Pager2左右页面的预览来实现 Carousel ,如下所示:

在此处输入图片说明

最初我使用的是支持的视图 pager1。现在我认为它被删除了

    viewPagerhost.setPageMargin(20);
Run Code Online (Sandbox Code Playgroud)

知道我们如何使用 View Pager 2 实现这一点

android carousel android-viewpager2

19
推荐指数
2
解决办法
1万
查看次数

Android:在RecyclerView中的项目之间添加分隔符

我正在使用RecyclerView圆角,使其圆角我在XML下面使用:

view_rounded.xml: -

<?xml version="1.0" encoding="utf-8"?>

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#008f8471"/>
    <stroke android:width="2dp" android:color="#ffffff" />
    <corners android:radius="10dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)

fragment_main.xml: -

<android.support.v7.widget.RecyclerView
    android:id="@+id/recycler_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/view_rounded"/>
Run Code Online (Sandbox Code Playgroud)

adapter_main.xml: -

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <TextView
        android:id="@+id/textTitle"
        style="@style/AppTheme.ListTextView"
        />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

style.xml: -

<style name="AppTheme.ListTextView" parent="android:Widget.Material.TextView">
  <item name="android:gravity">left</item>
  <item name="android:layout_width">match_parent</item>
  <item name="android:layout_height">wrap_content</item>
  <item name="android:textAllCaps">false</item>
  <item name="android:padding">10dp</item>
  <item name="android:textAppearance">@android:style/TextAppearance.DeviceDefault.Medium</item>
  <item name="android:textColor">@color/tabsScrollColor</item> 
  <item name="android:textStyle">bold</item> 
</style>
Run Code Online (Sandbox Code Playgroud)

获取(没有项目分隔符):

在此输入图像描述

必需(带项目分隔符):

在此输入图像描述

xml android android-styles android-recyclerview

15
推荐指数
3
解决办法
3万
查看次数

Android - 网格中项目之间的RecyclerView间距

在我的Android应用程序中,我使用a RecyclerView来显示网格中的项目GridLayoutManager.在GridView中,为了指定元素之间的间距,我将设置horizo​​ntalSpacingverticalSpacing属性.

那么,我怎么能这样做RecyclerView呢?

android gridview android-gridview android-recyclerview

14
推荐指数
3
解决办法
4万
查看次数

Android - Carousel like widget,显示左右元素的一部分

所以我搜索了高低,但找不到我的问题的答案.我基本上需要的是Android的ViewFlipper或ViewPager提供的行为,但我想显示左视图和右视图的部分,以指示用户有要滚动的元素,而不是让所选视图占据整个屏幕.

我还想在左侧和侧面视图中添加一些效果,例如调暗和缩放,然后稍微降低.是否可以使用库存ViewFlipper或ViewPager来完成它,或者我是否必须推出自己的视图组,即la cover flow(http://www.inter-fuser.com/2010/01/android-coverflow-widget .html)?

(PS我不想使用Gallery小部件,该组件很糟糕).

这是我们在选择视图后需要显示的内容(仍然显示左视图和右视图):

查看切换器

向左或向右投掷将使主视图过渡,调暗并减少一点,并与下一个或上一个视图相反.

android android-widget android-layout

13
推荐指数
1
解决办法
1万
查看次数

使用RecyclerView和卡

我有一些带有卡片物品的RecyclerView.在preLollipop设备上它看起来很好.但是在Lollipop上,它看起来没有儿童卡之间的间隔.我试图使用保证金和填充,但它没有帮助.当我在棒棒糖上使用保证金时,它看起来很好,但是在preLollipop上的间距相同,非常大.再一次:为什么会有不同的间距?我应该使用哪个属性来修复它?

android android-5.0-lollipop android-recyclerview

12
推荐指数
2
解决办法
2万
查看次数

ListView分隔符未在Android 5中显示

我有一个简单的列表视图,我已经为分隔符定义了一个自定义drawable.我已将分隔符高度定义为1dp.列表视图位于片段内.

<shape
    android:shape="line" >
    <stroke
        android:color="@color/custom_color" />

    <gradient android:height="1dp" />

</shape>
Run Code Online (Sandbox Code Playgroud)

它适用于除L以外的所有Android版本.

我缺少什么?

android android-layout android-listview android-5.0-lollipop

9
推荐指数
3
解决办法
8830
查看次数

如何在线性布局RecyclerView中缩进分隔符(即,仅向ItemDecoration添加填充,边距或插入)

根据这个答案,我能够在垂直RecyclerView的项目之间得到一个分隔符.但是,我也想稍微缩进分隔线.

我能够通过在RecyclerView.ItemDecoration子类中的INDENT值中进行硬编码来实现.

int INDENT = 20;

@Override
public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) { 

    int left = parent.getPaddingLeft() + INDENT;
    int right = parent.getWidth() - parent.getPaddingRight() - INDENT;

    // ...

        divider.setBounds(left, top, right, bottom);

    // ...
} 
Run Code Online (Sandbox Code Playgroud)

然而,那时我不得不混淆密度无关的像素.

我终于找到了一个类似于ListView的解决方案,所以我在下面分享这个答案.

android android-recyclerview

8
推荐指数
1
解决办法
2728
查看次数