小编azi*_*ian的帖子

如何使RecyclerView停止回收定义的位置?

我的问题是:我在RecyclerView内的其中一个视图上发生了视频流.

当用户滚动时,视图将被回收,其他摄像头会在该回收的视图持有者上开始自己的流式传输.这对用户界面不利,因为流式处理需要几秒钟才能启动.

我怎么能对RecyclerView说:"嘿嘿回收器,请不要回收那个确切的位置x并给出那个位置总是与你第一次给出的相同的观察者,而不是随机的一个"?

请有人帮帮我=(

android recycle android-layout android-viewholder android-recyclerview

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

单击动画制作Fab(放大/缩小)

我试图模仿动画和下面的浮动动作按钮的颜色变化.

浮动操作按钮的工作方式是白色关闭,蓝色打开.

在此输入图像描述

但是,我没有成功完成动画和改变颜色.

这些都是我尝试这样做的,因为你可以看到我已经评论了我尝试过的所有不同方法.

这是我的代码:

    @SuppressWarnings("unused")
    @OnClick(R.id.fabMovieFavourite)
    public void addMovieFavourite(View view) {
 /*       final Animator animator = AnimatorInflater.loadAnimator(getActivity(), R.animator.add_favourite_movie);
        animator.setTarget(view);)
        animator.start();
 */
/*
        AnimatorSet animatorSet = new AnimatorSet();
        PropertyValuesHolder propertyValuesHolderX = PropertyValuesHolder.ofFloat(View.SCALE_X, 1.1f);
        PropertyValuesHolder propertyValuesHolderY = PropertyValuesHolder.ofFloat(View.SCALE_Y, 1.1f);
        ObjectAnimator objectAnimator = ObjectAnimator.ofPropertyValuesHolder(view, propertyValuesHolderX, propertyValuesHolderY);
        objectAnimator.setDuration(300);
        objectAnimator.setInterpolator(new OvershootInterpolator(10f));
*/

        /*
        objectAnimator.setRepeatCount(1);
        objectAnimator.setRepeatMode(ObjectAnimator.REVERSE);
*/

/*
        PropertyValuesHolder propertyValuesHolderX2 = PropertyValuesHolder.ofFloat(View.SCALE_X, 0.9f);
        PropertyValuesHolder propertyValuesHolderY2 = PropertyValuesHolder.ofFloat(View.SCALE_Y, 0.9f);
        ObjectAnimator objectAnimator2 = ObjectAnimator.ofPropertyValuesHolder(view, propertyValuesHolderX2, propertyValuesHolderY2);
        objectAnimator.setDuration(300);
        objectAnimator2.setInterpolator(new OvershootInterpolator(10f));

        animatorSet.playSequentially(objectAnimator, objectAnimator2);
        objectAnimator.start();
*/

      //  view.BackgroundTintList(ContextCompat.getColorStateList(getContext(), R.color.primary));
        //view.setBackgroundColor(ContextCompat.getColor(getActivity(), …
Run Code Online (Sandbox Code Playgroud)

java animation android android-animation floating-action-button

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

什么是WindowInsets?

我正在尝试了解Android操作系统,当我阅读Google I/O 2014应用程序时,我遇到了WindowInsets.如果有人能解释他们是什么,那将是一个很大的帮助.谢谢.

java android android-layout android-view windowinsets

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

即使在强制停止后,Google日历或Instagram如何使他们的应用程序始终正常运行

看起来强制停止会阻止应用程序运行,它甚至会禁用所有应用程序的警报.然而,我发现Google日历中的通知即使在强制停止后仍然显示正常,我一直看到Instagram应用程序运行,即使我杀了它,它只是自动重启,它再一次在那里.

那么,什么是让应用程序不断运行的方法?我正在使用提醒进行应用,并且需要在特定时间显示通知,无论之前的应用是如何关闭的.

java android alarmmanager android-service

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

Android:LinearLayout addView动画

我目前有一个可用的Android程序,它以编程方式将视图添加到LinearLayout.我希望这些观点能够被动画化,并且无法找到任何有关如何做到这一点的好资源.

有人能指出我正确的方向吗?

animation android android-animation android-layout android-view

17
推荐指数
4
解决办法
9930
查看次数

如何在自定义Android视图中检查重力标记?

问题

我有一个自定义的Android视图,我想让用户设置重力以布局内容onDraw.这是我正在使用的简化版本onDraw:

// check gravity
if ((mGravity & Gravity.CENTER_VERTICAL) == Gravity.CENTER_VERTICAL) {
    // draw the content centered vertically
} else if ((mGravity & Gravity.BOTTOM) == Gravity.BOTTOM) {
    // draw the content at the bottom
}
Run Code Online (Sandbox Code Playgroud)

其中mGravity从XML属性(获得这样).

如果我将引力设置为Gravity.CENTER_VERTICAL它可以正常工作.但我很惊讶地发现,如果我把它设置为Gravity.BOTTOM,那么Gravity.CENTER_VERTICAL检查仍然是真的!

为什么会这样?

我必须查看二进制值才能看出原因:

因此,当我这样做

mGravity = Gravity.BOTTOM;
(mGravity & Gravity.CENTER_VERTICAL) == Gravity.CENTER_VERTICAL
//  (0101 & 0001) == 0001 …
Run Code Online (Sandbox Code Playgroud)

java flags android android-layout android-gravity

17
推荐指数
2
解决办法
1753
查看次数

为什么可运行的回调会自动销毁活动?

我想知道我们是否有可能postDelayed在android上处理/检测带有延迟(方法)的可运行回调?

例如,handler.postDelayed(new Runnable()...我的应用程序(用于测试目的的应用程序)有一个或几个splashscreen(运行).在这个应用程序中,我还有一个库(我正在应用程序中创建和使用它)以及一些在类上运行的IntentService类.

有时,当应用程序运行那些splashscreenActivities(for Testing purpose)时,我正在创建的库可能会在UI中自动弹出一些活动.但似乎如果这些活动出现在splashscreen活动上并且splashscreen正在被销毁,那些活动(自动弹出)也将被销毁并在logcat中记录"泄露的窗口"消息.

问题是:

  • 不应自动关闭UI中自动显示的那些活动,这是禁止的.它需要用户进行交互以关闭该活动并返回应用程序的正常行为.
  • 此外,该库对应用程序的UI一无所知.

所以我的问题是(相对于我正在创建的库方面而没有UI应用程序流的信息):

  • 有没有办法检测是否在相对于库方面的应用程序中创建了一些postDelayed方法?如果是,我该如何处理这个问题呢?

PS:请注意,通常情况下,我正在使用自动出现的假设活动的对话框.

UPDATE

图

图解说明:

现在我有一个正在执行Splashscreen的案例.

扩展IntentService类的类已收到来自Internet的请求,该请求将启动一个Activity.

同时启动了启动画面postdelayed,其他活动已创建并在UI中显示.当X秒已经过去且另一个Activity未被销毁时,将创建Next Activity并自动销毁另一个Activity.在这样做时,Android会相对于Activity抛出"泄露的窗口"消息.

java android android-activity android-handler android-looper

17
推荐指数
1
解决办法
624
查看次数

检查片段当前是否可见

我知道StackOverflow中有很多类似的问题,但我的问题却略有不同.

我有嵌套的Fragments层次结构,如下面的结构:

                                  Activity
                                     |
                                     |
                                 AFragment
                                     |
                                (ViewPager)
                                 |       |         
                                 |       |         
                         BFragment       BFragment  .....
                            |                       
                       (ViewPager)                       
                        |       |                         
                        |       |                         
                 CFragment     CFragment  ...
                     |
                (ViewPager)                       
                  |     |                              
                  |     |                        
           DFragment   DFragment ...
Run Code Online (Sandbox Code Playgroud)

现在我想知道是否DFragment向用户显示?

我尝试了很多来自StackOverflow的解决方案,但无法取得成功.

我尝试的是:

我尝试setUserVisibleHint()但它返回上面的层次结构中的true多个DFragment,这是一个原因ViewPager

我也试过这些链接:link1,link2,link3等......但没有得到实际的解决方案.

等待帮助.谢谢.

UPDATE

适配器类

class ViewPagerAdapter extends FragmentPagerAdapter {
        private final List<Fragment> mFragmentList = new ArrayList<>();
        private final List<String> mFragmentTitleList = new ArrayList<>();

        public ViewPagerAdapter(FragmentManager manager) {
            super(manager); …
Run Code Online (Sandbox Code Playgroud)

java android android-fragments android-view android-viewpager

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

在Gradle 4.1中更改apk输出文件夹

我想改变APK output folder,这就是我以前做的事情:

applicationVariants.all { variant ->
    variant.outputs.all {
        def filePath = "${rootProject.rootDir.absolutePath}/apks/${variant.name}"
        println("My Path: " + filePath)
        outputFileName = filePath
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,它无效Gradle 4.1(Android studio 3.0预览版).它不是像上面的路径一样生成文件夹,而是在旧debug文件夹中生成上面的路径,如下图所示:

在此输入图像描述

有人有解决方案吗?谢谢.

android gradle android-build build.gradle android-gradle-plugin

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

无法解析项目:Android库和Java库模块依赖项

我正在尝试在Android Studio(3.1)中创建一个包含Android库和Java库的项目.Java库依赖于Android库.这两个都是我项目中的模块,如下所示:

MyProject    
|-android
|-java
Run Code Online (Sandbox Code Playgroud)

两者都出现在settings.gradle中:

include ':android', ':java'
Run Code Online (Sandbox Code Playgroud)

Java库依赖于Android库,如下所示:

java(build.gradle):

apply plugin: 'java-library'

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation project(':android')
}
...
Run Code Online (Sandbox Code Playgroud)

android(build.gradle):

apply plugin: 'com.android.library'
...
Run Code Online (Sandbox Code Playgroud)

尝试同步项目时,我收到以下错误:

无法解决:project :: android

为什么?

PS反过来(Android依赖于Java)工作得很好.

java android gradle android-library android-gradle-plugin

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