小编Mau*_*ker的帖子

什么更好?循环中的notifyDataSetChanged或notifyItemChanged?

所以我有一个活动,RecyclerView我想通过按活动中的按钮更改TextView每个项目.RecyclerViewonClickListener()

我想知道在性能方面哪些更好:

  1. notifyDataSetChanged的.
  2. 与如int我使用条件循环低于List.size()地方notifyItemChanged将被称为几次.

在这两种情况下,我在RecyclerViewAdapter中创建布尔变量,用于onBindViewHolder知道如何更新项目.默认情况下它是假的,按下按钮后它变为真,所以onBindViewHolder以不同的方式更新项目.

我也想知道这种方法是否合适.

android android-viewholder android-recyclerview

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

使用Picasso和Glide获取黑色ImageView

问题

我正在编写一个Android应用程序,它应该有一个"幻灯片"功能.我发现这个漂亮的图书馆,基于毕加索,完全符合我的要求,而且大多数时候它都运行得很好.

问题是,有时我的图像没有加载到幻灯片中ImageView...它只显示一个"黑色画布",你可以在下面的截图中看到.

在此输入图像描述

我从我的drawables加载本地资源的图像.有时它会在纵向模式下发生,有时在横向模式下发生.我使用哪个图像并不重要,有时会发生"黑度".

编辑:

  • 我正在使用Android 5.0.2和4.4.2 - 它似乎不会发生在4.4.2上.仅在5.0.2.

  • 它发生在带有Android 5.1的Moto X 2014上.

  • 我试图加载的图像在磁盘上有45KB,分辨率为900x445.

  • 我按照建议打开了布局,这些是结果:

单张幻灯片

它在滚动上保持这样.

在此输入图像描述

有时,它会变成白色而不是黑色(或白色,然后是黑色).

在此输入图像描述

我试过的其他东西:res/drawable当我将文件从该文件夹更改res/drawable-xxxhdpi为5.0.2设备上的滑块时,我的drawables位于文件夹中.跆拳道???

到目前为止我做了什么

我尝试了不同的图像,在幻灯片上加载多个图像,甚至这个拉取请求将Picasso更改为在lib上滑动.似乎没有任何作用,错误似乎是随机的.

一旦我尝试使用来自网络的URL而不是本地存储上的实际drawable,它就可以工作了.与完全相同的图像.

这是我加载图像的方式:

Fragment.java

private SliderLayout slider;
private PagerIndicator indicator;

// ...

private void setupSlider() {

    HashMap<String,Integer> file_maps = new HashMap<>();

    file_maps.put("Blah",R.drawable.banner_1);
    file_maps.put("Bleh",R.drawable.banner_2);
    file_maps.put("Blih",R.drawable.banner_3);
    file_maps.put("Bloh",R.drawable.banner_4);

    for (String name : file_maps.keySet()) {

        DefaultSliderView dsv = new DefaultSliderView(getActivity());

        dsv.description(name)
                .image(file_maps.get(name))
                .error(R.drawable.banner_error)
                .empty(R.drawable.empty)
                .setScaleType(BaseSliderView.ScaleType.Fit)
                .setOnSliderClickListener(this);

        //add your extra information
        dsv.bundle(new Bundle());
        dsv.getBundle()
                .putString("extra",name); …
Run Code Online (Sandbox Code Playgroud)

android imageview android-drawable picasso android-glide

42
推荐指数
1
解决办法
2877
查看次数

错误:(1,0)未找到ID为'android'的插件

我刚刚安装了Android Studio,经过一些关于SDK Build Tools最低限度的怪癖必须是19.1.0而不是19.0.3我还没有发现另一个错误

Error:(1, 0) Plugin with id 'android' not found.
Run Code Online (Sandbox Code Playgroud)

我还没有找到谷歌的解决方案,我绝对是新的所以我"毫无头绪"......当我刚创建一个新的空白活动(和应用程序)时出现错误.

错误的含义是什么以及如何解决?(如果这是一个问题)

谢谢.

android gradle

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

Angularjs在ng-href中起作用

我想调用ng-href中的函数并从函数返回链接.

当我单击该函数时,它将页面发送到url中的该函数.喜欢:

本地主机/ pageLink()

<a ng-href="pagelink()" >Link</a>
Run Code Online (Sandbox Code Playgroud)

我该如何运行该功能并返回正确的链接?

javascript model-view-controller angularjs angularjs-ng-href

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

Glide有加载PNG和SVG的方法吗?

我使用滑翔到一些图像加载异步到一些我的ImageViewS,我知道它能够处理图像像PNG或者JPG因为它可以处理SVG.

事实是,据我所知,我加载这两种图像的方式不同.喜欢:

加载"正常"图像

Glide.with(mContext)
                .load("URL")
                .into(cardHolder.iv_card);
Run Code Online (Sandbox Code Playgroud)

加载SVG

GenericRequestBuilder<Uri, InputStream, SVG, PictureDrawable> requestBuilder = Glide.with(mContext)
        .using(Glide.buildStreamModelLoader(Uri.class, mContext), InputStream.class)
        .from(Uri.class)
        .as(SVG.class)
        .transcode(new SvgDrawableTranscoder(), PictureDrawable.class)
        .sourceEncoder(new StreamEncoder())
        .cacheDecoder(new FileToStreamDecoder<>(new SVGDecoder()))
        .decoder(new SVGDecoder())
        .listener(new SvgSoftwareLayerSetter<Uri>());

requestBuilder
        .diskCacheStrategy(DiskCacheStrategy.NONE)
        .load(Uri.parse("URL"))
        .into(cardHolder.iv_card);
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用第一种方法加载SVG,它将无法工作.如果我尝试使用第二种方法加载PNG或JPG,它也无法正常工作.

是否有使用Glide加载两种图像类型的通用方法?

我从中获取这些图像的服务器在下载之前不会告诉我图像类型.它是一个REST服务器,资源将以类似的方式检索"http://foo.bar/resource".了解图像类型的唯一方法是读取HEAD响应.

java svg android android-glide

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

应用随机崩溃与致命信号7(SIGBUS),代码2或致命信号11(SIGSEGV),代码1

上下文

我正在创建一个应用程序,它应该显示一些图像Fragment,其中大部分是从互联网上下载的.

我正在使用Glide来处理我在我的CardViews上的图像加载和我的图像滑块上的Fresco(这个问题在SO上解释了我为什么使用两个图像库).

的lib的壁画部分主要是基于这个叉子AndroidImageSlider.

重要提示:我正在尝试加载的图像可以是PNGSVG.

更多信息:我正在使用运行Android 5.0.2 的Moto Maxx(国际版Droid Turbo).也发生在运行Android 4.4.2(cyanogen mod)的三星Galaxy S4上,但它的发生频率要低得多.

PS:没有使用NDK.

问题

有时,我的应用程序只是崩溃,无处不在,甚至没有任何用户交互.当它发生时,我在logcat上收到以下错误消息:

Fatal signal 7 (SIGBUS), code 2, fault addr 0x9a74c060 in tid 21894
Run Code Online (Sandbox Code Playgroud)

全栈:

04-07 07:59:08.110 21894 21894 F libc    : Fatal signal 7 (SIGBUS), code 2, fault addr 0x9a74c060 in tid 21894 (asus.saitestore)
04-07 07:59:08.161 21946 21946 E Diag_Lib: …
Run Code Online (Sandbox Code Playgroud)

svg android fresco android-glide

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

在动画制作时,在RecyclerView内部折叠CardView

我想做什么

CardView在底部有一个支持文本GONE,默认情况下.我想只在用户点击"操作箭头"时才能看到卡片的这一部分,如下图所示:

展开箭头

我知道我可以通过简单地设置View可见性来实现这一目标VISIBLE,但我也希望为扩展和崩溃事件设置动画.

问题和我到目前为止所尝试的内容

要做到这一点,我已经android:animateLayoutChanges="true"在我的CardViewxml 上使用了该属性,并且它在扩展时工作得很好.但是,一旦我再次点击箭头折叠支持文本,下面的卡片就会重叠我在动画期间点击过的卡片.我怎样才能避免这种重叠?

编辑:我知道有可能做一些像这个问题解决方案,但它似乎过于复杂,因为该android:animateLayoutChanges选项存在.我想知道是否可以使用该XML属性解决我的问题,以保持简单.

我的动画代码如下:

Java代码

protected void expandCard() {
    if (isExpanded) {
        ibt_show_more.animate().rotation(0).start();
        isExpanded = false;
        tv_support.setVisibility(View.GONE);
    }
    else {
        ibt_show_more.animate().rotation(180).start();
        isExpanded = true;
        tv_support.setVisibility(View.VISIBLE);
    }
}
Run Code Online (Sandbox Code Playgroud)

XML代码

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="@dimen/spacing_small"
    card_view:cardCornerRadius="2dp"
    android:id="@+id/os_list_item_cv">

    <RelativeLayout
        android:id="@+id/os_list_item_rl_root"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:animateLayoutChanges="true">

        <!-- Here goes the header, the image, the action buttons and so on -->
        <!-- …
Run Code Online (Sandbox Code Playgroud)

android android-animation android-cardview

18
推荐指数
1
解决办法
3151
查看次数

折叠CardView动画无法正常工作

我想做什么

我有RecyclerView很多项目,基本上是一些CardView.

这些卡片在他们的身体中间有一个支持文本,GONE默认情况下可见性设置为,VISIBLE当我点击卡片右侧的箭头时,它就会生成.

我正在尝试在文本显示的同时对卡进行动画处理,同时它会崩溃.

下图显示了扩展卡和折叠卡:

牌

CardView布局(我已经删除了可读性某些部分):

<android.support.v7.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    card_view:cardCornerRadius="3dp"
    card_view:cardElevation="4dp"
    card_view:cardUseCompatPadding="true"
    android:id="@+id/root">

    <LinearLayout
        android:id="@+id/item_ll"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:padding="@dimen/activity_vertical_margin">

        <!-- The header with the title and the item -->


        <TextView
            android:id="@+id/body_content"
            style="@style/TextAppearance.AppCompat.Medium"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="8dp"
            android:layout_marginBottom="8dp"
            android:text="@string/about_page_description"
            android:textColor="@color/secondaryText"
            android:visibility="gone"/>

        <!-- The divider, and the footer with the timestamp -->

    </LinearLayout>
</android.support.v7.widget.CardView>
Run Code Online (Sandbox Code Playgroud)

问题

当卡片展开并露出身体时TextView,动画正在工作,但是,当我试图将其折叠回来时,动画片下方的卡片与第一张卡片重叠.

例:

卡片动画

到目前为止我尝试过的

我之前已经在这里问了一个关于这种行为类似问题,但是这个解决方案并不适用TextView于卡片的中间位置.

负责动画部分的代码在RecyclerView适配器内部.箭头有一个点击监听器,可以调用以下方法:

private …
Run Code Online (Sandbox Code Playgroud)

android android-animation kotlin android-transitions android-recyclerview

14
推荐指数
2
解决办法
1511
查看次数

Android onHandleIntent和onStartCommand之间的区别

我目前正在编写一个需要的android程序IntentService.当我将代码放在onHandleIntent函数中时,代码不会运行,但它不会给出错误MainActivity.但是当我将代码复制到其中时onStartCommand,它运行得很好.

问题是我想知道onHandleIntent和之间有什么区别onStartCommand.谢谢.

码:

onHandleIntent:

System.out.println("SERVICE STARTED! ! !");
//System.out.println(intent.getBooleanExtra("once", Boolean.FALSE));
if (intent.getBooleanExtra("once", Boolean.FALSE)) {
    Check();
}
mHandler.postDelayed(mRunnable, 3000);
Run Code Online (Sandbox Code Playgroud)

android android-service intentservice

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

初始化的阵列是否保留其顺序?

假设我像这样初始化一个数组:

int[] anArray = { 
    100, 200, 300,
    400, 500, 600, 
    700, 800, 900, 1000
};
Run Code Online (Sandbox Code Playgroud)

是否保证元素将始终按照我在初始化时键入的顺序插入?例如:100,200,300,400,500,600,700,...,1000

java arrays sorting

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