我在左侧导航中使用ExpandableListView作为平板电脑屏幕.
当用户在我的可扩展列表中按下组的子项时,我希望将该子项保持在按下状态,以便用户知道正在显示右手内容的子项.
对于ListView,我能够在代码中使用此行完成此效果:
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
Run Code Online (Sandbox Code Playgroud)
然后应用此选择器:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_activated="true" android:drawable="@drawable/menu_item_pressed" />
<item android:state_pressed="false" android:state_focused="false" android:drawable="@drawable/menu_item_normal" />
<item android:state_pressed="true" android:drawable="@drawable/menu_item_pressed" />
<item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/menu_item_pressed" />
Run Code Online (Sandbox Code Playgroud)
按下listView项后,listView项上的"state_activiated"为true.
我希望这个技术对我的expandableListView有用,但事实并非如此.我用了:
getExpandableListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
Run Code Online (Sandbox Code Playgroud)
然后使用上面相同的选择器,但它不起作用.我还尝试过其他状态,例如state_selected和state_checked,这些状态也不起作用.
上面的选择器正确应用按下和未按下状态.看起来使用ExpandableListView,按下一个孩子后状态不会被"激活".
任何帮助表示赞赏.谢谢!
我正在尝试使用 mockk 编写单元测试。
我试图弄清楚如何模拟对象的新实例。
例如,使用 PowerMockito 我们会这样写:
PowerMockito.whenNew(Dog::class.java).withArguments("beagle").thenReturn(mockDog)
Run Code Online (Sandbox Code Playgroud)
如果我的测试的预期结果是模拟狗,我希望能够断言它等于我的实际结果:
assertEquals(mockDog, actualResult)
Run Code Online (Sandbox Code Playgroud)
我将如何使用 mockk 完成此操作?
提前致谢。
我有一个rippleDrawable,我用它作为LinearLayout的背景:
<LinearLayout
android:id="@+id/card_layout"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:clickable="true"
android:background="@drawable/ripple"
android:orientation="vertical" >
Run Code Online (Sandbox Code Playgroud)
我想开始点击布局的新活动.当我刚做一个startActivity()时,纹波效果很好 - 你可以看到大部分的涟漪效应发生,然后显示新的屏幕.
但是,如果我使用ActivityOptionsCompat.makeSceneTransitionAnimation启动活动,则在点击布局时不会发生涟漪效应.注意,在这种情况下,长按仍会显示纹波.
我也在按钮上尝试了这个,并看到了相同的结果.
所以就像makeSceneTransitionAnimation发生得太快,或者覆盖了涟漪效应.我希望在场景转换动画发生之前完成涟漪或者至少有一些涟漪.我不确定这是否与渲染线程中的波纹和过渡竞争有关?
我试着在被调用的活动上调用postponeEnterTransition.但是这不起作用 - 被调用的活动仍然立即显示,然后转换被推迟,直到你再次启动它.
任何人对我可能做错了什么有任何想法?
我正在使用API 21(没有AppCompat).在此先感谢您的帮助.
我正在尝试使用以下说明为VM加速设置模拟器:使用Android模拟器.
设置说:
您必须使用使用x86系统映像目标的AVD.使用此处描述的仿真器配置无法加速使用基于ARM的系统映像的AVD.
然后它说:
要在模拟器中使用虚拟机加速,您需要以下版本的Android开发工具.使用Android SDK Manager安装以下组件:
Android SDK工具,修订版17或更高版本
基于Android x86的系统映像
我有最新的Android SDK工具.但是在我的SDK Manager中,我没有任何"基于Android x86的系统"可供安装.我也没有任何x86系统映像选项可以安装任何特定的API版本.
对于那些成功设置此功能的用户,您是如何使用Android SDK Manager安装"基于Android x86的系统映像"的?
我相信我已经完成了所需的所有其他设置,包括运行IntelHAXM.exe并确认虚拟化驱动程序运行正常.
在此先感谢您的帮助.