小编pRa*_*NaY的帖子

Travis CI构建不适用于Android Constraint Layout

我想让Travis构建我的Android项目.它尝试下载库时失败ConstraintLayout.你知道我要做些什么才能让它发挥作用吗?

我的.travis.yml是这样的:

language: android
jdk:
  - oraclejdk8
android:
  components:
    - platform-tools
    - tools
    - build-tools-23.0.2
    - android-23
    - extra-android-support
    - extra-android-m2repository
    - extra-google-m2repository
Run Code Online (Sandbox Code Playgroud)

build.gradle是:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
    defaultConfig {
        applicationId "my.example.bdd"
        minSdkVersion 9
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha2'
    testCompile 'junit:junit:4.12'
    androidTestCompile …
Run Code Online (Sandbox Code Playgroud)

android travis-ci android-constraintlayout

22
推荐指数
3
解决办法
7797
查看次数

如何在RecyclerView上的排序(notifyDataSetChanged)期间提供自定义动画

目前,通过使用默认动画师android.support.v7.widget.DefaultItemAnimator,这是我在排序过程中遇到的结果

DefaultItemAnimator动画视频: https ://youtu.be/EccI7RUcdbg

public void sortAndNotifyDataSetChanged() {
    int i0 = 0;
    int i1 = models.size() - 1;

    while (i0 < i1) {
        DemoModel o0 = models.get(i0);
        DemoModel o1 = models.get(i1);

        models.set(i0, o1);
        models.set(i1, o0);

        i0++;
        i1--;

        //break;
    }

    // adapter is created via adapter = new RecyclerViewDemoAdapter(models, mRecyclerView, this);
    adapter.notifyDataSetChanged();
}
Run Code Online (Sandbox Code Playgroud)

但是,我更喜欢提供自定义动画,而不是排序时的默认动画(notifyDataSetChanged).旧物品将从右侧滑出,新物品将向上滑动.

预期的动画视频: https ://youtu.be/9aQTyM7K4B0

如何在没有RecylerView的情况下实现这样的动画

几年前,我通过使用LinearLayout+ 达到了这个效果View,因为那个时候我们还RecyclerView没有.

这就是动画的设置方式

PropertyValuesHolder alpha = PropertyValuesHolder.ofFloat("alpha", 1.0f, 0f);
PropertyValuesHolder translationX = PropertyValuesHolder.ofFloat("translationX", …
Run Code Online (Sandbox Code Playgroud)

android android-animation notifydatasetchanged android-recyclerview

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

在Moto 360上进行调试

我试图让通过蓝牙调试我的摩托360工作,我下面的这些指示,但是当我把adb forward tcp:4444 localabstract:/adb-hub; adb connect localhost:4444所有的事通过其可用的命令列表是亚洲开发银行再次运行.

在佩戴配套应用程序Debugging over Bluetooth中,Host表示Disconnected和Target表示已连接.

在手表本身上启用ADB调试并启用蓝牙调试

我也参考了这篇文章,它有更多的信息,但仍然没有

adb看到我的手机从来没有看过手表

我错过了什么?

debugging android adb wear-os

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

在EditText下面显示Helper文本以及提示

我想在这些方面做点什么:

EditText示例

我能够显示提示android:hint="Email Address"但无法显示帮助文本 - 这将是您的电子邮件用户名

    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <EditText
            android:id="@+id/et_username"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="15"
            android:hint="Username"
            app:et_helper="Username is preferably your registered email"/>

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

我得到的只是,并且没有用户名最好是您在edittext下面注册的电子邮件:

输出:

产量

任何指针赞赏.谢谢.

android android-layout android-edittext androiddesignsupport android-textinputlayout

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

如何在android studio中启用dex编译器D8(下一代Dex编译器)

随着Android Studio 3.0 Beta版的发布,android studio提供下一代dex编译器,D8编译代码并构建android APK.目前D8可供预览.

查看更多详细信息:https: //android-developers.googleblog.com/2017/08/next-generation-dex-compiler-now-in.html

如何在android studio中使用D8启用构建?

android dex android-studio build.gradle

16
推荐指数
2
解决办法
7001
查看次数

如何将 Fragment 的参数项添加到 Koin 依赖图中?

我有一个ViewModel它有它应该从采取的依赖Fragmentarguments

所以它是这样的:

class SomeViewModel(someValue: SomeValue)
Run Code Online (Sandbox Code Playgroud)

现在这个片段SomeValue在它的争论中收到了这样的:

class SomeFragment : Fragment() {
    val someViewModel: SomeViewModel by viewModel()

    companion object {
        fun newInstance(someValue: SomeValue) = SomeFragment().apply {
            arguments = bundleof("someKey" to someValue)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何添加SomeValueFragment's argumentsto Koin's 模块中获取的内容。

有没有办法让片段对 Koin 依赖图有所贡献?

android dependency-injection kotlin koin

16
推荐指数
1
解决办法
5044
查看次数

Android Studio 2.2预览1 EditText错误

我正在尝试使用Android Studio 2.2预览1,但如果我创建一个新项目并添加一个简单的EditText并尝试运行,我收到以下错误.

05-20 15:53:00.748 11798-11798/br.com.tutorialandroid.sqlite E/AndroidRuntime: FATAL EXCEPTION: main
Process: br.com.tutorialandroid.sqlite, PID: 11798
java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.tutorialandroid.sqlite/br.com.tutorialandroid.sqlite.MainActivity}: android.view.InflateException: Binary XML file line #14: Error inflating class EditText
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2658)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723)
at android.app.ActivityThread.access$900(ActivityThread.java:172)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5832)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
Caused by: android.view.InflateException: Binary XML file line #14: Error inflating class EditText
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:770)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:933)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:933)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
at …
Run Code Online (Sandbox Code Playgroud)

android android-studio android-constraintlayout

15
推荐指数
1
解决办法
4108
查看次数

条带计费:未选择计划且在注册时未输入信用卡的试用

我读过这篇文章Stripe - 如何处理订阅免费计划,并且在注册时不需要信用卡,并且发现它非常有帮助,但我仍然有一个问题.

我的应用程序有两个付费计划:'基本'和'专家'.注册用户选择计划,也不输入卡详细信息.基本上,用户在前14天使用通用试用计划,在此试用期结束后,用户必须选择付费计划并输入卡详细信息.

处理此试验的最佳方法是什么?我在想这些方法:

a)由于我不知道用户在试用期满后将选择哪种付费方案,我无法使用Stripe试用期功能.

来自Stripe Docs:创建计划时,您可以设置的其中一个选项是试用期将持续多长时间.如果您确实选择提供试用期,则在试用期结束之前,您注册的客户将不会首次收费.

我想创建一个名为'trial'的条纹计划,金额设置为0.00美元,试用期为14天,间隔为2周.通过这种方式,我将能够收听Stripe webhook customer.subscription.updated以确定试用版是否已过期并相应地更新数据库.我不确定这是否是一个好方法,因为它将为此试用计划生成发票(它被设置为订阅).我喜欢Stripe webhooks.有没有更好的方法呢?

b)另一种选择是只在Stripe中有付费计划并在试用期到期时创建Stripe订阅并且用户必须选择计划并输入卡详细信息.这样我就不会使用Stripe检查试用版是否过期.我将检查用户登录以确定试用版是否仍处于活动状态.

谢谢你的帮助!

payment-gateway webhooks payment-processing stripe-payments

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

如何将对话框窗口背景设置为透明,而不影响其边距

目前,我有以下对话框,我将对其项目执行展开/折叠动画.

在此输入图像描述

该对话框通过以下代码创建

import android.support.v7.app.AlertDialog;

final AlertDialog.Builder builder = new AlertDialog.Builder(activity);
final AlertDialog dialog = builder.setView(view).create();
final ViewTreeObserver vto = view.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {

    public void onGlobalLayout() {
        ViewTreeObserver obs = view.getViewTreeObserver();
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) {
            obs.removeOnGlobalLayoutListener(this);
        } else {
            obs.removeGlobalOnLayoutListener(this);
        }

        // http://stackoverflow.com/questions/19326142/why-listview-expand-collapse-animation-appears-much-slower-in-dialogfragment-tha
        int width = dialog.getWindow().getDecorView().getWidth();
        int height = dialog.getWindow().getDecorView().getHeight();
        dialog.getWindow().setLayout(width, height);
    }
});
Run Code Online (Sandbox Code Playgroud)

但是,当执行动画时,这是副作用.

在此输入图像描述

请注意,动画后对话框中不需要的额外白色区域不是由我们的自定义视图引起的.它是对话框本身的系统窗口白色背景.

我倾向于使对话框的系统窗口背景变得透明.

final AlertDialog.Builder builder = new AlertDialog.Builder(activity);
final AlertDialog dialog = builder.setView(view).create();
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
Run Code Online (Sandbox Code Playgroud)

虽然不再看到不需要的白色背景,但对话框的原始边距也消失了.(对话框宽度现在是全屏宽度)

在此输入图像描述

如何在不影响保证金的情况下使其透明?

android android-animation android-dialog

12
推荐指数
1
解决办法
3896
查看次数

使用OBD检测CAR的AC(开/关)和窗口(打开/关闭)

有没有办法使用OBD检测AC(空调)和Window(打开/关闭).

我在下面提到了OBD阅读器的链接,但我无法找到任何方法来检测AC(空调)和窗口(打开/关闭).

https://github.com/pires/obd-java-api

https://github.com/pires/android-obd-reader

android bluetooth-lowenergy obd-ii

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