小编Ped*_*ira的帖子

getLocationOnScreen在旋转后返回旧位置

是)我有的:

  • 一项活动 android:configChanges="orientation|screenSize|keyboardHidden"
  • 一个DialogFragment就可以了
  • DialogFragment上的ViewA

有什么问题:

我正在使用ViewA.getLocationOnScreen视图屏幕上的位置.当我第一次打开对话框时,位置是正确的.旋转屏幕后,由于android:configChanges视图以某种方式不更新它的位置,即使对话框在活动中正确居中,ViewA的getLocationOnScreen指向旋转前的旧位置.

我试过的.

我覆盖了onConfigurationChanged对话框并尝试了这个:

  • ViewA.requestLayout (什么都不做)
  • ViewA.getViewTreeObserver().addOnGlobalLayoutListener并在onGlobalLayout上将topMargin设置为1并再次调用requestLayout.(这个工作但我不想在每次旋转屏幕时设置边距)

我想知道的是如何强制重新定位对话框,使得getLocationOnScreen在旋转后返回正确的值

请注意,我不想改变 android:configChanges

android android-dialogfragment

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

RecyclerView分离视图仍然可见

目前的情况

我正在使用这个库https://github.com/kanytu/android-parallax-recyclerview来实现RecyclerView的视差效果.到现在为止还挺好.不过,我希望得到像Google报亭这样的效果,标题仍然低于卡片.

问题

问题是,当列表的第一个元素触及父视图的顶部时,RecyclerView(或LinerLayoutManager)会分离标题视图:

在此输入图像描述

正如您所看到的那样,第一张cardview触及顶部的那一刻就是RecyclerView分离标题的那一刻.

我确信RecyclerView.findViewHolderForPosition(0) == null当卡到达顶部时,我得到的逻辑本身没有问题.证明标题已被回收.

试过的解决方案

我尝试过很多东西:

ViewHolder.setIsRecyclable使用此方法将持有者设置为不回收者不会产生任何影响.

LayoutManager.ignoreView我尝试将视图标记为从scapping和recycle中忽略.结果是一个例外说: Trying to recycle an ignored view holder. You should first call stopIgnoringView(view) before calling recycle.

setItemViewCacheSize什么都不做.尝试调用setItemViewCacheSize(50)它并没有对标题做任何事情.

setMaxRecycledViews尝试将viewType = HEADER的回收视图的最大值设置为0,并且它仍然可以回收它.

结论

所以我怀疑是否有任何方式标记该项目没有分离,直到我订购(如检查它是否仍然可见,然后分离它).

关于它的github还有一个问题:https://github.com/kanytu/android-parallax-recyclerview/issues/7

android android-recyclerview

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

VMWare中的Intel HAXM安装错误

我自己的处理器支持虚拟化:

在此输入图像描述

我想我也在我的BIOS设置中激活了它.

它是我使用的vmware虚拟机处理器的信息页面(9.0.2 build-1031769)

在此输入图像描述

仍然,当我尝试安装硬件加速执行管理器以启动我的Android虚拟设备时,我采取以下错误:

在此输入图像描述

我该怎么办?

android intel virtual-machine haxm

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

从RecyclerView中删除行

我已经在这篇文章的帮助下以某种方式实现了回收视图,现在我的要求是在此回收视图中从运行时删除一行.

链接 - http://treyrobinson.net/blog/android-l-tutorials-part-3-recyclerview-and-cardview/

请帮我.

谢谢.

android android-5.0-lollipop android-recyclerview

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

Proguard保留接口方法变量名称

我试图防止proguard混淆接口方法变量名。我的proguard.pro具有以下配置,但方法变量仍显示为a,b等。

-保持公开课* {public *; }

-keepclassmembers class * {public *; }

-keepattributes异常,内部类,签名-keep参数名称-keep公共接口com.test.listener.MyListener {*; }

android proguard

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

Android Studio Kotlin正则表达式与预期不同

我遇到了一个特定正则表达式的问题,它在Android Studio中运行时返回的值与预期不同.

场景:

代码很简单:

val regex = "(?<=N|E|\\G)\\d{2}(?=\\d*$)".toRegex()
print("${regex.findAll("N2032354345").count()}")
Run Code Online (Sandbox Code Playgroud)

这应该打印5,因为此字符串中有5个匹配项(https://regex101.com/r/6PDbkI/1),如果我们在Ideone.comKotlin Playground中运行,结果是预期的5.

但是,在Android Studio中,结果为1:

理论:

似乎Android Studio中的正则表达式未能使用\G运算符(这可能与Kotlin拆分与正则表达式工作不符合预期)

有人遇到同样的问题吗?有没有办法将正则表达式更改为Android Studio中没有失败的类似的正则表达式?我错过了一些设置吗?

regex android kotlin android-studio

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

滑动ListView时项目变大

我想在Android中实现一个列表效果,如Ultravisual Iphone应用程序中显示的那样:

在此输入图像描述

类似的效果可以在Android的米兰世博会2015应用程序上查看.

我希望在向下滑动ListView时顶级项目变得更大.

我不知道如何做到这一点......它是当前视图中第一个项目的动画吗?

如果某人有一个例子或线索来实现这一点,那就太好了!

谢谢

android listview android-listview

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

以编程方式单击时突出显示TextView

我动态生成像按钮一样工作的TextViews.现在我想在他们受到压力时强调它们.像改变文本颜色或背景颜色的东西.我试图使用选择器,但它不起作用.

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:color="#ffffff"/>
<item android:state_pressed="true" android:state_enabled="false" android:color="#ffffff" />
</selector>
Run Code Online (Sandbox Code Playgroud)

这是我创建TextViews的循环.

int z = 0;
    for (MOKGenericDataItem d : data) {
        if (d.getButtonText() != null) {
            final int pagePosition = z;
            TextView btn = new TextView(getActivity());
            btn.setId(z);
            final int id_ = btn.getId();
            btn.setText(d.getButtonText());
            btn.setTextSize(TypedValue.COMPLEX_UNIT_SP, 30);
            btn.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, 1f));
            btn.setGravity(Gravity.CENTER);

            mLineareLayoutViewPagerButtons.addView(btn);

            btn1 = ((TextView) view.findViewById(id_));
            btn1.setOnClickListener(new View.OnClickListener() {
                public void onClick(View view) {
                    mViewPager.setCurrentItem(pagePosition,false);
                }
            });
        }
        z++;
    }
Run Code Online (Sandbox Code Playgroud)

android textview

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