小编cas*_*orz的帖子

自定义通知最大高度?

我正在尝试制作自定义通知,但它最终总是很小(大约是大多数通知的大小)。我可以看到 Netflix 和 Youtube 在投射到 chromecast 设备时显示更大的通知,这些通知看起来很自定义(它们可能是大视图)。他们怎么把它们弄得那么大?

谢谢。

编辑:将其标记为已回答,因为评论指出bigContentView

android android-layout

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

viewHolder.getAdapterPosition()始终返回-1

由于某种原因,我无法使用,holder.getAdapterPosition()因为它总是返回-1但holder.getLayoutPosition()返回一个位置就好了.

我的onCreateViewHolder:

@覆盖

public ViewHolder onCreateViewHolder(ViewGroup parent,
                                     int viewType) {
    // create a new view
    View v = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.my_item, parent, false);


    ViewHolder vh = new ViewHolder(this, v);
    return vh;
}
Run Code Online (Sandbox Code Playgroud)

我的ViewHolder构造函数:

public ViewHolder(DirectoryListAdapter adapter, View linear) {
            super(linear);
            this.adapter = adapter;
            this.linear = (LinearLayout) linear;
            this.entryName = (TextView) linear.findViewById(R.id.item_name);
            this.entryImage = (ImageView) linear.findViewById(R.id.item_image);

}
Run Code Online (Sandbox Code Playgroud)

我看起来更远,getAdapterPosition看起来像这样:

 public final int getAdapterPosition() {
            final ViewParent parent = itemView.getParent();
            if (!(parent instanceof RecyclerView)) {
                return -1;
            } …
Run Code Online (Sandbox Code Playgroud)

android android-support-library android-viewholder android-recyclerview

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

如何在将在 RemoteView 中使用的可绘制对象上设置滤色器?

我有一个必须应用过滤器的ImaveViewon a 。RemoteView当我不在的时候,RemoteView这就是我所做的,而且效果很好:

    Drawable icon = getResources().getDrawable(R.drawable.icon);
    icon.setColorFilter(color, PorterDuff.Mode.SRC_IN);
    image.setImageDrawable(icon);
Run Code Online (Sandbox Code Playgroud)

似乎RemoteView没有办法让我设置不是资源的可绘制对象。我该怎么做呢?

谢谢。

android android-widget android-notifications remoteview android-remoteview

6
推荐指数
2
解决办法
3395
查看次数

android.support.v7.graphics.Palette宽度和高度必须> 0

我有一些使用新Palette类的代码,我在Crashlytics上得到这些崩溃报告说的width and height must be > 0.奇怪的是,这就是我调用调色板代码的方式:

if( bitmap == null || bitmap.getHeight() <= 0 || bitmap.getWidth() <= 0){
   //do something
}else{
   Palette.Builder(bitmap).generate(new Palette.PaletteAsyncListener() {
.....
}
Run Code Online (Sandbox Code Playgroud)

所以我只是不确定突然的位图是否有可能没有正确的高度或宽度.我不知道异常来自哪个代码,因为报告只包含调色板类中的内容.

这是一个例外:

java.lang.RuntimeException: An error occured while executing doInBackground()
       at android.os.AsyncTask$3.done(AsyncTask.java:300)
       at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
       at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
       at java.util.concurrent.FutureTask.run(FutureTask.java:242)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
       at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.IllegalArgumentException: width and height must be > 0
       at android.graphics.Bitmap.createBitmap(Bitmap.java:815)
       at android.graphics.Bitmap.createBitmap(Bitmap.java:794)
       at android.graphics.Bitmap.createBitmap(Bitmap.java:725)
       at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:601)
       at android.support.v7.graphics.Palette.scaleBitmapDown(Palette.java:282)
       at android.support.v7.graphics.Palette.access$100(Palette.java:67)
       at android.support.v7.graphics.Palette$Builder.generate(Palette.java:557)
       at android.support.v7.graphics.Palette$Builder$1.doInBackground(Palette.java:623) …
Run Code Online (Sandbox Code Playgroud)

android android-support-library android-palette

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

是否有NestedScrollView的替代方法可用于WebView?

使用WebView内部时NestedScrollView有一些问题.我正在争取的主要是那些在向下滚动时加载更多内容的网站效果不佳,例如vimeo.com.同样设置视图LAYER_TYPE_HARDWARE不起作用,可能出于同样的原因,它基本上因高度而崩溃.那么,有没有到一个替代NestedScrollView,如果我想使用CoordinatorLayout,以折叠工具栏时,里面的用户滚动WebView

我的代码如下.要重现此问题,只需加载vimeo.com并滚动到底部即可.

activity_scrolling.xml

    <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar"
        android:layout_width="match_parent"
        android:layout_height="@dimen/app_bar_height"
        android:fitsSystemWindows="true"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/toolbar_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <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/AppTheme.PopupOverlay"/>

        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

    <android.support.v4.widget.NestedScrollView
        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"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        tools:context="com.webviewnestedscroll.ScrollingActivity"
        tools:showIn="@layout/activity_scrolling">

        <WebView
            android:id="@+id/webview"
            android:layout_width="match_parent"
            android:layout_height="match_parent"></WebView>
    </android.support.v4.widget.NestedScrollView>

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="@dimen/fab_margin"
        android:src="@android:drawable/ic_dialog_email"
        app:layout_anchor="@id/app_bar"
        app:layout_anchorGravity="bottom|end"/>

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

ScrollingActivity.java

package com.webviewnestedscroll;

import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.webkit.WebSettings; …
Run Code Online (Sandbox Code Playgroud)

android webview android-webview android-support-library android-design-library

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

有没有办法以编程方式从 locales_config.xml 获取语言列表?

我对 Android 13 上的这种新语言感到非常困惑。

我有一个locales_config.xml文件,工作正常,但文档听起来像是我可以使用它LocaleListCompat来让 Android 12 或更早版本的用户选择语言。

然而,除了解析 XMl 之外,我还没有找到任何方法来查询列出的所有语言locales_config.xml,但这感觉不对,而且语言的名称不会被翻译。

那么我应该如何为用户提供语言选择locales_config.xml呢?

android android-locale

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

android.content.ActivityNotFoundException“ android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS”

我正在尝试引导用户进行电池优化活动,它似乎对大多数用户都有效,除了一些获得Android 6的三星手机,我可以得到:

Fatal Exception: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS }
Run Code Online (Sandbox Code Playgroud)

这是我用来启动它的:

Intent intent = new Intent("android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

知道我应该在这些手机上启动什么吗?

谢谢。

android android-6.0-marshmallow

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

有没有办法拦截android上WebView上的websocket连接?

shouldInterceptRequest经常使用 Android System WebView,但我刚刚注意到我无法为 websockets 做到这一点。有什么办法可以做到这一点吗?即使只是为了获取地址。

android android-webview

5
推荐指数
0
解决办法
357
查看次数

意图广播时发生 ANR { act=android.intent.action.SCREEN_OFF flg=0x50200010 (有额外内容) }

Play 商店有很多 ANR,但它拒绝向我提供堆栈跟踪。这是我没有堆栈跟踪的顶级 ANR:

Broadcast of Intent { act=android.intent.action.SCREEN_OFF flg=0x50200010 (has extras) }
Run Code Online (Sandbox Code Playgroud)

既然它说android.intent.action.SCREEN_OFF,是否可以安全地假设我的应用程序导致 ANR,而某些应用程序Activity正在调用它或类似的方法onPauseonStop

关于如何解决这个问题还有其他建议吗?

编辑:据我所知,我的代码或第三方库中没有为该广播注册任何内容。我什至查看了编译后生成的清单。

编辑:这是我所看到的屏幕截图。它说SCREEN_ON,但是当我在上一个屏幕上查看它时,它说SCREEN_OFF。有一天它会说“开”,另一天会说“关”。不管它说什么,永远不会有堆栈跟踪。

在此输入图像描述

android android-anr-dialog

5
推荐指数
0
解决办法
7082
查看次数

如何找出代码的哪些部分使用 UI 线程最多?

我正在尝试在没有任何堆栈跟踪的情况下追踪一些 ANR。我现在只想检查大量使用 UI 线程的代码的每个部分。

有没有办法绘制此图或进行某种跟踪以查看哪些方法花费的时间最长,而无需我修改大量代码?

android android-anr-dialog

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