小编Hal*_*iaz的帖子

在RecyclerView的末尾添加空间

我有一个带有gridlayout的recyclerview.我想要的是当用户滚动到列表的末尾时(请参阅我的坏模型),应该有一个高度为50dp的空白空间,这与我的网格尺寸不同.

请注意,此空间仅在最末端可见,因为我不想更改布局.我可以这样做,以便recycerview的边距为50dp,但我不想这样做.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:fab="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.RecyclerView
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity"
        android:scrollbars="vertical"
        />

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

android android-layout android-gridlayout android-recyclerview

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

删除最后一项时,Recyclerview崩溃.NullPointerException:android.view.ViewGroup $ LayoutParams android.view.View.getLayoutParams()

我有一个recyclerview,使用arraylist填充.当我从列表中删除项目时,它可以正常工作,直到最后一项被删除.下面是我的recyclerview适配器中的代码,它删除了一个项目.

public void removeItem(int position) {
        itemsData.remove(position);
        notifyItemRemoved(position);
    }
Run Code Online (Sandbox Code Playgroud)

下面是崩溃日志.日志不会将我引导到我的代码中的指定位置.所以我不确定是什么导致了这个问题.

我做了一些测试并记录了位置.如果我将一个项目添加到arraylist和notifyItemInserted在recyclerview中添加的项目的位置是0.如果我点击添加的项目,位置是0如果我删除该项目我删除它在位置0,但它崩溃了将项目移除为位置0时.

显示java.lang.NullPointerException:尝试在上$ android.support.v7.widget.OrientationHelper 2.getDecoratedStart(OrientationHelper空对象引用调用虚拟方法android.view.ViewGroup $的LayoutParams android.view.View.getLayoutParams()'.的java:316)在android.support.v7.widget.LinearLayoutManager.findOneVisibleChild(LinearLayoutManager.java:1633)在android.support.v7.widget.LinearLayoutManager.findFirstVisibleChildClosestToStart(LinearLayoutManager.java:1453)在android.support.v7.widget .LinearLayoutManager.computeScrollOffset(LinearLayoutManager.java:997)在android.support.v7.widget.LinearLayoutManager.computeVerticalScrollOffset(LinearLayoutManager.java:969)在android.support.v7.widget.RecyclerView.computeVerticalScrollOffset(RecyclerView.java:1175)在android.view.View.canScrollVertically(View.java:12835)在android.support.v4.view.ViewCompatICS.canScrollVertically(ViewCompatICS.java:35)在android.support.v4.view.ViewCompat $ ICSViewCompatImpl.canScrollVertically(ViewC ompat.java:1136)在android.support.v4.view.ViewCompat.canScrollVertically(ViewCompat.java:1528)在android.support.v7.widget.RecyclerView $ LayoutManager.onInitializeAccessibilityEvent(RecyclerView.java:6594)在android.support .v7.widget.RecyclerView $ LayoutManager.onInitializeAccessibilityEvent(RecyclerView.java:6573)位于android.support.v7.widget.LinearLayoutManager.onInitializeAccessibilityEvent(LinearLayoutManager.java:204)的android.support.v7.widget.RecyclerViewAccessibilityDelegate.onInitializeAccessibilityEvent(RecyclerViewAccessibilityDelegate) .java:66)在android.support.v4.view.AccessibilityDelegateCompat $ AccessInDegateJetBeanImpl $ 1.onInitializeAccessibilityEvent(AccessibilityDelegateCompat.java:228)在android.support.v4.view.AccessibilityDelegateCompatJellyBean $ 1.onInitializeAccessibilityEvent(AccessibilityDelegateCompatJellyBean.java:56). view.View.onInitializeAccessibilityEvent(View.java:5439)at android.view.View.sendAccessibilityEventUncheckedInternal(V iew.java:5312)在android.view.View $ AccessibilityDelegate.sendAccessibilityEventUnchecked(View.java:20823)在android.support.v4.view.AccessibilityDelegateCompatIcs.sendAccessibilityEventUnchecked(AccessibilityDelegateCompatIcs.java:117)在android.support.v4.view .AccessibilityDelegateCompat $ AccessibilityDelegateIcsImpl.sendAccessibilityEventUnchecked(AccessibilityDelegateCompat.java:210)at android.support.v4.view.AccessibilityDelegateCompat.sendAccessibilityEventUnchecked(AccessibilityDelegateCompat.java:358)at android.support.v4.view.AccessibilityDelegateCompat $ AccessibilityDelegateJellyBeanImpl $ 1.sendAccessibilityEventUnchecked(AccessibilityDelegateCompat. java:255)在android.sview.View.View.View.View.View.RunImpl上的android.sview.View.sendAccessibilityEventUnchecked(View.java:5297)的android.support.v4.view.AccessibilityDelegateCompatJellyBean $ 1.sendAccessibilityEventUnchecked(AccessibilityDelegateCompatJellyBean.java:82)$ SendWindowContentChangedAccessibilityEvent.run( ViewRootImpl.java:6934)在andro android.view.ViewRootImpl.not上的android.view.ViewRootImpl.notifySubtreeAccessibilityStateChanged(ViewRootImpl.java:6274)的android.view.ViewRootImpl.postSendWindowContentChangedCallback(ViewRootImpl.java:6161)中的id.view.ViewRootImpl $ SendWindowContentChangedAccessibilityEvent.runOrPost(ViewRootImpl.java:6960)位于android.view.ViewGroup.notGroup上的android.view.ViewGroup.notifySubtreeAccessibilityStateChanged(ViewGroup.java:2772)上的.ViewGroup.notifySubtreeAccessibilityStateChanged(ViewGroup.java:2772)处于android.view.ViewGroup.notifySubtreeAccessibilityStateChanged( ViewGroup.java:2772)位于android.view.ViewGroup.notGroup上的android.view.ViewGroup.notifySubtreeAccessibilityStateChanged(ViewGroup.java:2772)上的android.view.ViewGroup.notifySubtreeAccessibilityAccessibilityAcableAccessibilityStateChanged(ViewGroup.java:2772) )在android.view.ViewGroup.notifySubtreeAccessibilityStateChanged(

非常感谢任何帮助!

crash null android android-recyclerview

6
推荐指数
1
解决办法
1612
查看次数

RenderScript无法正确渲染ScriptIntrinsicBlur,导致ScriptIntrinsicBlur呈现彩虹色

使用滑动android库我将图像作为位图(参见滑动文档),然后我尝试使用renderscript和ScriptIntrinsicBlur模糊位图,这是一个高斯模糊.(取自此stackoverflow帖子)

 Glide.with(getApplicationContext())
    .load(ImageUrl)
    .asBitmap()
    .into(new SimpleTarget<Bitmap>(300,200) {
        @Override
        public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) {

            RenderScript rs = RenderScript.create(mContext); // context = this. this referring to the activity

            final Allocation input = Allocation.createFromBitmap( rs, resource, Allocation.MipmapControl.MIPMAP_NONE, Allocation.USAGE_SCRIPT );
            final Allocation output = Allocation.createTyped( rs, input.getType() );
            final ScriptIntrinsicBlur script = ScriptIntrinsicBlur.create( rs, Element.U8_4( rs ) );
            script.setRadius(8f);
            script.setInput(input);
            script.forEach(output);
            output.copyTo(resource);

            mImageView.setImageBitmap(resource); 
        }
    });
Run Code Online (Sandbox Code Playgroud)

问题是这是输出,而不是模糊的图像: 在此输入图像描述

任何帮助将非常感谢谢谢.:)

android bitmap imageview renderscript

5
推荐指数
2
解决办法
1011
查看次数

当项目被添加时,Observablecollection不更新列表

我正在使用MVVM模式,并希望使用可观察的集合更新ListView.我经历了几个SO问题,但看不出我做错了什么.任何帮助深表感谢.谢谢.

View.xaml

命名空间: xmlns:local="clr-namespace:MusicPlayer.ViewModel"

DataContext的

<UserControl.DataContext>
    <local:AllTracksViewModel/>
</UserControl.DataContext>
Run Code Online (Sandbox Code Playgroud)

列表显示

<ListView x:Name="TrackListView" 
                  ItemsSource="{Binding Path=TrackListObservable}">
...
<ListView.View>
   <GridView>
     <GridViewColumn Header="Title" Width="250" DisplayMemberBinding="{Binding Title}" />
      <GridViewColumn Header="Album" Width="200" DisplayMemberBinding="{Binding Album}" />
      <GridViewColumn Header="Artist" Width="150" DisplayMemberBinding="{Binding Artist}" />
      <GridViewColumn Header="Duration" Width="100" DisplayMemberBinding="{Binding FormattedDuration}" />
      </GridView>
    </ListView.View>
</ListView>
Run Code Online (Sandbox Code Playgroud)

ViewModel.cs

public class AllTracksViewModel
{
    public ObservableCollection<Track> TrackListObservable { get; private set; }

    public AllTracksViewModel()
    {
        TrackListObservable = new ObservableCollection<Track>();
    }
}
Run Code Online (Sandbox Code Playgroud)

我确认项目肯定会被添加到observable中.再一次感谢你的帮助.

c# wpf listview mvvm

4
推荐指数
1
解决办法
7414
查看次数