小编Ult*_*o_m的帖子

AppBarLayout和Toolbar的新Android设计库错误

我在github和这里使用基于这个例子的新的Android设计库chrisbanes/cheesesquare

我运行了这个例子,我遇到了CheeseDetailActivity里面的工具栏问题.工具栏未按预期显示.看看下面的图片:

在第一张图像中,您可以看到工具栏未正确显示.

在此输入图像描述

在第二个图像中,您可以看到工具栏显示正确但通知栏为白色.发生这种情况是因为我从actiivty_detail.xml中删除android:fitsSystemWindows="true"android.support.design.widget.CoordinatorLayout

在此输入图像描述

我认为这fitsSystemWindows应该是真的,问题与此有关,android.support.design.widget.AppBarLayout但我不知道如何解决这个问题.我尝试marginTop了相同的高度,notificationBar但它没有工作.

任何建议表示赞赏:)

这是以下内容的一部分activity_detail.xml:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

<android.support.design.widget.AppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="@dimen/detail_backdrop_height"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    android:fitsSystemWindows="true">

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

        <ImageView
            android:id="@+id/backdrop"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop"
            android:fitsSystemWindows="true"
            app:layout_collapseMode="parallax" />

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
            app:layout_collapseMode="pin" />

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

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

android android-layout android-toolbar android-design-library

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

Android Studio Update 1.0的Android注释错误

我正在Android Annotations和我合作,今天我做了新的更新Android Studio 1.0.

当我构建项目时它给了我这个错误:

Error:(40, 0) Could not find property 'processResources' on com.android.build.gradle.internal.api.ApplicationVariantImpl_Decorated@54335f5.
Run Code Online (Sandbox Code Playgroud)

这是我的build.gradle文件my project:

    // Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.0.0'


        // the latest version of the android-apt plugin https://bitbucket.org/hvisser/android-apt
        // http://stackoverflow.com/a/25939518
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
} …
Run Code Online (Sandbox Code Playgroud)

android android-annotations android-studio build.gradle

10
推荐指数
1
解决办法
5794
查看次数

Java/Kotlin JSON解析改进

我使用了一个API,它给了我这种类型的JSON:

{
  "data": {
    "name": "Start",
    "pid": "1",
    "position": {
      "data": {
        "x": "31",
        "y": "330"
      },
      "metadata": "empty"
    }
  },
  "metadata": "empty"
}
Run Code Online (Sandbox Code Playgroud)

我创建了具有与上述JSON相同结构的对象的类.我retrofit在Android中使用lib,里面GSON用于解析JSON.

我的模型类是这样的:

MResponse.class

public class MResponse {

    @SerializedName("data")
    public User user;

    String metadata;
}
Run Code Online (Sandbox Code Playgroud)

User.class

public class User {

    public String name;

    public String pid;

    @SerializedName("position")
    public PositionData positionData;
}
Run Code Online (Sandbox Code Playgroud)

PositionData.class

public class PositionData {

    @SerializedName("data")
    public Position position;

    public String metadata;
}
Run Code Online (Sandbox Code Playgroud)

Position.class

public class Position {

    public String x;

    public …
Run Code Online (Sandbox Code Playgroud)

java parsing android json kotlin

7
推荐指数
1
解决办法
865
查看次数

为 Flutter 项目添加 Android 运行/调试配置

我正在开发一个 Flutter示例项目,其中展示了如何在 Android 应用程序(以及 iOS)内共享 FlutterView。

在使用它时我尝试了这个:

我对 Android 项目进行了更改,例如更改主题颜色,如果我进行热重载/运行,因为main.dart我看不到正在运行的应用程序中反映的更改。我必须从 Android Studio 停止它并main.dart再次运行才能看到更改。

为了解决这个问题,我正在考虑添加一个run/debug configurationAndroidapp模块。这样我就可以运行 androidapp而不是main.dart.

有没有办法在 Android Studio 中实现这一点?

android对我来说,一个解决方案是从 Android studio 中的新窗口打开(/flutter_view/android/app) 项目。我可以这样运行应用程序。

(但在这里我遇到了另一个问题,以防有人有解决方案)。

android android-studio flutter

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

Android 中 Kotlin Kdoc 中的图像

在 JavaDoc 中,您可以添加如下图像:

/**
 * ...The following legend explains these diagrams:
 * <img width="640" height="577" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/Completable.png" alt="">
 */
public class Test {
}
Run Code Online (Sandbox Code Playgroud)

我如何在 Kotlin Kdoc 中实现同样的目标?

android kotlin kdoc

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

如何在android中获取图像矩阵坐标?

我正在开发一个包含裁剪功能的应用程序,在这种情况下我在下面的场景中被阻止。

场景

如果我们更改裁剪叠加,当我们对图像应用拉直时裁剪叠加不会循环整个图像,比例也不起作用。

我从谷歌得到了代码,但它与矩阵有关,我尝试使用矩阵,但在这里我需要找到矩阵的坐标(边)来移动叠加层。

如何找到它?如果有人有任何想法,请帮助我...

我添加了图像来解释问题 在此处输入图片说明

提前致谢..
我正在使用下面的代码,但我没有得到矩阵的确切坐标

RectF r = new RectF(); 
 mymatrix.mapRect(r);
 Rect rect = 
 new Rect((int)r.left,int)r.top,int)r.right+width,int)r.bottom+height);
Run Code Online (Sandbox Code Playgroud)

android bitmap matrix

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

Android WebRTC自定义远程和本地视图

我正在Android项目中实现webrtc,我基于github中的这个示例.

此示例使用libjingle库.这是创建视频渲染视图的方式:

        // Create video renderers.
        VideoRendererGui.setView((GLSurfaceView)videoView, new Runnable() {
            @Override
            public void run() {
                createPeerConnectionFactory();
            }
        });
        remoteRender = VideoRendererGui.create(
                REMOTE_X, REMOTE_Y,
                REMOTE_WIDTH, REMOTE_HEIGHT, scalingType, false);
        localRender = VideoRendererGui.create(
                LOCAL_X_CONNECTING, LOCAL_Y_CONNECTING,
                LOCAL_WIDTH_CONNECTING, LOCAL_HEIGHT_CONNECTING, scalingType, true);
Run Code Online (Sandbox Code Playgroud)

我的问题是我如何设法自定义remoteRenderlocalRender,以便我可以positionGLSurfaceView它的宽度和高度更改它

编辑:

我做了一个听众,我试过这个:

    @Override
    public void onWidthHeightChange(int width, int height) {
        VideoRendererGui.update(remoteRender,
                REMOTE_X-width, REMOTE_X-height,
                REMOTE_WIDTH-width, REMOTE_HEIGHT-height, scalingType, false);
        if (iceConnected) {
            VideoRendererGui.update(localRender,
                    LOCAL_X_CONNECTED, LOCAL_Y_CONNECTED,
                    LOCAL_WIDTH_CONNECTED, LOCAL_HEIGHT_CONNECTED,
                    ScalingType.SCALE_ASPECT_FIT, true);
        } else {
            VideoRendererGui.update(localRender,
                    LOCAL_X_CONNECTING, LOCAL_Y_CONNECTING, …
Run Code Online (Sandbox Code Playgroud)

android video-streaming libjingle glsurfaceview webrtc

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

如何检测软件键盘在 Android 电视(fire tv)上是否可见?

我知道如何在 Android 移动设备中检测显示键盘时,但如何在 Android 电视或 Fire 电视上做到这一点?

android android-softkeyboard android-tv amazon-fire-tv

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

Android 库矢量转换为默认混淆的 png 和 Kotlin 文件

我只是用 Android Studio(AS) 创建了一个新的 android 项目。我添加了一个library module带有矢量可绘制对象和一个带有注释的 Kotlin 文件。我运行 assemble release 并生成一个aar文件。

我用 AS 反编译器打开这个 aar 发布文件,我看到矢量文件被转换为 png 以用于不同的可绘制对象,并且 Kotlin 文件被混淆了compiled code

原始xml矢量文件只能在目录中找到 drawable-anydpi-v24

如何禁用vector to pngfile obfuscation用于我的库模块?

我有默认的 build.gradle: minifyEnabled false

(我已经知道org.jetbrains.dokka所以请不要说只是使用它)

android android-library kotlin

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

Jacoco 在 Gradle 7.0.2 和 Kotlin 1.5.10 上失败

今天我更新了 android studio 中的 gradle 和 kotlin 依赖项。

新版本如下:

kotlin_version = "1.5.10"
...
jacoco {
    toolVersion = "0.8.6"
}
...
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip
Run Code Online (Sandbox Code Playgroud)

测试覆盖率报告任务失败并出现以下错误:

2021-05-27T16:57:49.150+0200 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter] Executing actions for task ':consumerkit:testDebugUnitTestCoverage'.
2021-05-27T16:57:49.304+0200 [DEBUG] [org.codehaus.groovy.vmplugin.VMPluginFactory] Trying to create VM plugin `org.codehaus.groovy.vmplugin.v9.Java9` by checking `java.lang.Module`, but failed:
java.lang.ClassNotFoundException: java.lang.Module
        at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at org.codehaus.groovy.vmplugin.VMPluginFactory.lambda$createPlugin$0(VMPluginFactory.java:61)
        at java.security.AccessController.doPrivileged(Native Method)
Run Code Online (Sandbox Code Playgroud)

android gradle jacoco kotlin android-studio

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

将 Android 中的 Joda 时间转换为本地时区

我想在 android 中使用 Joda 时间库将时间转换为手机本地时区。

例如,我有 UTC 时间: 2016-01-14 11:13:56

我现在的时间是: 2016-01-14 12:13:56

当我运行此代码时:

DateTime dt = new DateTime(DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss").parseDateTime(usersResponse.lastUpdate),
                DateTimeZone.UTC);

String time = String.valueOf(dt));
Run Code Online (Sandbox Code Playgroud)

我得到: 2016-01-14T10:13:56.000Z

当我运行此代码时:

DateTime dt = DateTime.parse(usersResponse.lastUpdate, DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss"));

String time = String.valueOf(dt));
Run Code Online (Sandbox Code Playgroud)

我得到: 2016-01-14T11:13:56.000+01:00

当我运行此代码时:

DateTime dt = new DateTime(DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss").parseDateTime(usersResponse.lastUpdate),
                DateTimeZone.forID("Europe/Rome"));

String time = String.valueOf(dt));
Run Code Online (Sandbox Code Playgroud)

我得到: 2016-01-14T11:13:56.000+01:00

但这是错误的,我应该收到: 2016-01-14T12:13:56.000+02:00

有没有我遗漏的配置。这个问题是否与夏令时有关(从这里的一些问题来看,我已经看到 Joda Time 管理了这个问题)

我怎样才能获得设备本地时间的时间。

谢谢

java timezone datetime android jodatime

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

未删除令牌类型 Int 或 Long 的 Android 处理程序回调 (*Kotlin)

我在 android 项目中执行了这段代码Kotlin,它将记录两条消息。如果我将其更改tokenChar,否则String它将仅打印一条消息,这是所需的行为。android 中的 java 项目中的相同用例可以正常工作。

    val handler = Handler()
    //val token1: Long = 1001L
    //val token2: Int = 121
    val token1: Long = 1001L
    val token2: Int = 1002

    handler.postAtTime(
        {
            Log.e("postAtTime 1", " printed 1 ")
            handler.removeCallbacksAndMessages(token2)
        },
        token1,
        SystemClock.uptimeMillis() + 2000
    )

    handler.postAtTime(
        {
            Log.e("postAtTime 2", " printed 2 ")
        },
        token2,
        SystemClock.uptimeMillis() + 4000
    )
Run Code Online (Sandbox Code Playgroud)

我的问题是,为什么在 Kotlin 中,对于 类型的标记IntLong处理程序不会删除回调?

编辑 如果我尝试使用注释值,它会起作用

android kotlin android-handler

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