小编X09*_*X09的帖子

RecyclerView快速滚动拇指高度太小,不适合大型数据集

我正在使用默认的RecyclerView快速滚动,我按照本指南来支持它.

现在,问题是拇指根据数据集的大小调整其高度.对于100以上的大件物品,拇指变得非常小,几乎难以对拖动作出反应.

请问有什么方法可以为快速滚动拇指设置最小高度.

android android-recyclerview

15
推荐指数
2
解决办法
3105
查看次数

"警告:不要将Android上下文类放在静态字段中;这是内存泄漏(并且还会中断Instant Run)"

类似的问题已经被问这里,这里这里,但背景是从这个完全不同,而且,从这个错误给代码是由Android和Android工作室的制作者编写的.

这是代码:

public class MySingleton {
    private static MySingleton mInstance;
    private RequestQueue mRequestQueue;
    private ImageLoader mImageLoader;
    private static Context mCtx;

    private MySingleton(Context context) {
        mCtx = context;
        mRequestQueue = getRequestQueue();

        mImageLoader = new ImageLoader(mRequestQueue,
                new ImageLoader.ImageCache() {
            private final LruCache<String, Bitmap>
                    cache = new LruCache<String, Bitmap>(20);

            @Override
            public Bitmap getBitmap(String url) {
                return cache.get(url);
            }

            @Override
            public void putBitmap(String url, Bitmap bitmap) {
                cache.put(url, bitmap);
            }
        });
    }

    public static synchronized MySingleton …
Run Code Online (Sandbox Code Playgroud)

java android memory-leaks android-volley

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

尝试部署firebase函数时出现ESLint错误

我尝试部署firebase函数,但由于ESLint的某些问题,它一直在失败.我也试过谷歌搜索答案,但我看到的一切都是希腊语给我.

我也偶然发现了这个这个答案,但似乎它们不适用于我的场景.

我的功能

// // Create and Deploy Your First Cloud Functions
// // https://firebase.google.com/docs/functions/write-firebase-functions
//
// exports.helloWorld = functions.https.onRequest((request, response) => {
//  response.send("Hello from Firebase!");
// });


//import firebase functions modules
const functions = require("firebase-functions");
//import admin module
const admin = require("firebase-admin");
admin.initializeApp(functions.config().firebase);

// Listens for new messages added to messages/:pushId
exports.pushNotification = functions.database.ref("/Message").onWrite( event => {
    //  Grab the current value of what was written to the Realtime Database.
    var valueObject = event.data.val(); …
Run Code Online (Sandbox Code Playgroud)

node.js firebase eslint google-cloud-functions firebase-cli

12
推荐指数
4
解决办法
9338
查看次数

com.bumptech.glide.Registry $ NoModelLoaderAvailableException:找不到任何ModelLoaders

我正在尝试将自定义模型加载到Glide中但收到此错误:

GlideExecutor:请求抛出未捕获的throwable com.bumptech.glide.Registry $ NoModelLoaderAvailableException:无法找到模型的任何ModelLoaders:com.company.project.glide.Movie@aac331a

滑翔版:4.0.0

我的代码:

模型

public class Movie {
    private String name;
    private String artist;

    public Movie(String name, String artist) {
        this.name = name;
        this.artist = artist;
    }

    public String getName() {
        return name;
    }

    public String getArtist() {
        return artist;
    }
}
Run Code Online (Sandbox Code Playgroud)

@com.bumptech.glide.annotation.GlideModule
public class GlideModule  extends AppGlideModule {

    @Override
    public boolean isManifestParsingEnabled() {
        return false;
    }

    @Override
    public void applyOptions(Context context, GlideBuilder builder) {
        super.applyOptions(context, builder);
    }

    @Override
    public void registerComponents(Context context, Registry …
Run Code Online (Sandbox Code Playgroud)

android android-glide

10
推荐指数
2
解决办法
4759
查看次数

如何增加可用于gradle的内存

在详细介绍Android Studio 2.1稳定版本功能的官方帖子中,我遇到了这个:

我们还通过使用进程内dex来加速构建时间,该进程dex将类文件转换为Gradle守护程序进程中的dex文件.这避免了创建单独的dex进程的昂贵处理操作.要使用此功能,您需要将Gradle守护程序可用的内存量增加到至少2GB(默认值为1 GB).

请问,如何增加Gradle可用的内存?

android android-studio android-gradle-plugin

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

如何跟踪截击请求的进度

我一直在使用凌空网络库一段时间了.为了向用户显示他们的请求被发送,我向他们展示了一个不确定的进度条,我将其隐藏在onResponse或中onErrorResponse.

Bot现在,我想向用户显示请求的进度并更新进度条的进度.从本质上讲,我不想再使用不确定的.

说我正在提出这个请求:

/ Instantiate the RequestQueue.
RequestQueue queue = Volley.newRequestQueue(this);
String url ="http://www.google.com";
//Show progressBar here

// Request a string response from the provided URL.
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
            new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        //I Hide progressBar here, and parse and display the response.
    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        //I Hide progressBar here also and show a dialog to retry.
    }
});
// …
Run Code Online (Sandbox Code Playgroud)

android android-progressbar android-volley

6
推荐指数
0
解决办法
2130
查看次数

Eventbus:消费后删除粘性事件

我使用 firebase 发送通知。当应用程序在前台时,通知由扩展的类接收FirebaseMessagingService。所以在onMessageReceived,我这样做:

EventBus.getDefault().postSticky(new NotificationEvent(body, title, url));

我有两个活动可以侦听此事件。活动 A 和活动 B。

在这两项活动中,我都这样做:

@Subscribe(sticky = true, threadMode = ThreadMode.MAIN)
    public void consumeNotification(NotificationEvent event) {
        //Consume event
    }

    @Override
    public void onStart() {
        super.onStart();
        EventBus.getDefault().register(this);
        Log.d(TAG, "onStart called");
    }

    @Override
    public void onStop() {
        NotificationEvent event = EventBus.getDefault().getStickyEvent(NotificationEvent.class);
        if (event != null) {
            EventBus.getDefault().removeStickyEvent(event);
        }
        EventBus.getDefault().unregister(this);
        super.onStop();
        Log.d(TAG, "onStop called");
    }
Run Code Online (Sandbox Code Playgroud)

现在,Activity A 中有一个按钮可以启动 Activity B。

如果活动 A 在屏幕上可见,并且我收到通知(触发事件),则第一次使用该事件。

因此,当我单击按钮启动 Activity B(onStop在 Activity A 上调用)时,但令人惊讶的是,当它onStop …

android greenrobot-eventbus

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

Admob错误:没有足够的空间来展示广告.需要320x50 dp,但只有309x0 dp

我正在尝试将智能横幅广告投放到我的片段布局中,而我所得到的就是"没有足够的空间展示广告.需要320x50 dp,但只有309x0 dp".

这是我的片段布局.

<android.support.v4.widget.NestedScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:scrollbars="vertical"
    android:fillViewport="true"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/details_layout"
    android:background="@android:color/white"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.app.bookng.DetailsFragment">

    <RelativeLayout

        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/details_relat"
        android:padding="5dp">

        <com.google.android.gms.ads.AdView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_alignParentBottom="true"
            android:id="@+id/banner_id"
            ads:adSize="SMART_BANNER"
            ads:adUnitId="XXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>

        <ProgressBar
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:indeterminate="true"
            android:id="@+id/progress_circle"
            android:visibility="gone"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_centerInParent="true"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:hint="@string/title"
            android:id="@+id/dbook_title"
            android:visibility="gone"
            android:layout_margin="5dp"
            android:textStyle="bold"/>

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="30dp"
            android:layout_marginTop="20dp"
            android:layout_marginRight="10dp"
            android:layout_marginLeft="10dp"
            android:layout_below="@+id/dbook_title"
            android:id="@+id/rootauthor_date"
            android:gravity="center_vertical">

            <View
                android:layout_width="match_parent"
                android:layout_height="1dp"
                android:layout_marginLeft="10dp"
                android:visibility="gone"
                android:background="#d1d1d1"
                android:layout_alignParentTop="true"
                android:id="@+id/dviewtop"
                android:layout_marginTop="15dp"
                android:layout_toRightOf="@+id/author_img"/>


            <com.app.bookng.CircularNetworkImageView
                android:layout_width="90dp"
                android:layout_height="90dp"
                android:visibility="gone"
                android:padding="3dp"
                android:layout_alignParentLeft="true"
                android:id="@+id/author_img"
                android:scaleType="centerCrop"
                android:background="@drawable/round_button"/>

            <TextView
                android:layout_width="wrap_content"
                android:visibility="gone" …
Run Code Online (Sandbox Code Playgroud)

android admob

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

java.lang.NullPointerException:尝试在空对象引用上调用虚方法'boolean android.graphics.Bitmap.isRecycled()'

我正在尝试在RecyclerView中实现滑动删除.除了在正在刷卡的项目下面绘制一个删除图标外,一切似乎都运行正常.

这就是我这样做的方式:

ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {

            @Override
            public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
                return false;
            }

            @Override
            public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
                int position = viewHolder.getAdapterPosition();

//                Do my stuff
//                }
            }

            @Override
            public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {

                Bitmap icon;
                if(actionState == ItemTouchHelper.ACTION_STATE_SWIPE){

                    View itemView = viewHolder.itemView;
                    float height = (float) itemView.getBottom() - (float) itemView.getTop();
                    float width …
Run Code Online (Sandbox Code Playgroud)

java android bitmap nullpointerexception

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

如何在 Android 上使用 Apache Tika

我正在尝试使用 Apache tika 来解析一些文档,但它给了我很多错误和警告。

构建.gradle

dependencies {
    ...
    compile ('org.apache.tika:tika-parsers:1.14'){
        exclude group: 'org.json', module: 'json'
        exclude group: 'commons-logging', module: 'commons-logging'
        exclude group: 'org.apache.httpcomponents', module: 'httpclient'}
...
}
Run Code Online (Sandbox Code Playgroud)

为了让这个问题更容易阅读,我不会在这里粘贴警告(它们是 600+),我会忽略它们,但错误如下:

Error:Uncaught translation error: java.lang.IllegalArgumentException: already added: Lorg/apache/xmlbeans/xml/stream/Location;
Error:Uncaught translation error: java.lang.IllegalArgumentException: already added: Lorg/apache/xmlbeans/xml/stream/ReferenceResolver;
Error:Uncaught translation error: java.lang.IllegalArgumentException: already added: Lorg/apache/xmlbeans/xml/stream/XMLEvent;
Error:Uncaught translation error: java.lang.IllegalArgumentException: already added: Lorg/apache/xmlbeans/xml/stream/XMLInputStream;
Error:Uncaught translation error: java.lang.IllegalArgumentException: already added: Lorg/apache/xmlbeans/xml/stream/XMLName;
Error:Uncaught translation error: java.lang.IllegalArgumentException: already added: Lorg/apache/xmlbeans/xml/stream/XMLStreamException;
Error:Uncaught translation error: java.lang.IllegalArgumentException: already added: Lorg/apache/xmlbeans/xml/stream/utils/NestedThrowable;
Error:Uncaught translation …
Run Code Online (Sandbox Code Playgroud)

android apache-tika

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