我有一个片段,其中包含多个布局,我想在它们之间移动焦点。该应用程序通过包含D-Pad的遥控器(上,下,左,右和Enter)进行操作。
两个“视图组”都包装在一个FrameLayout中,因为第二个视图组与第一个视图组重叠,而第一个视图组正在拉伸整个页面。视图布局如下所示:
<FrameLayout android:id="contentSurfaceWrapper">
<HorizontalScrollView android:id="contentSurfaceScroll">
<LinearLayout android:id="contentSurface">
<!-- This layout is populated with child layouts (LinearLayout) programmatically -->
<!-- Those layouts are: clickable, focusable & focusableInTouchMode -->
</LinearLayout>
</HorizontalScrollView>
</FrameLayout>
<FrameLayout android:id="navButtonsWrapper">
<ScrollView android:id="navButtonsScroll">
<LinearLayout android:id="navButtons">
<!-- This layout is populated with child layouts (LinearLayout) programmatically -->
</LinearLayout>
</ScrollView>
</FrameLayout>
外观图片:
我能够导航至视图:contentSurface,并位于其所有子视图之间,并具有应用顶部操作栏上的遥控器。但是,现在我想从第一个视图(contentSurface)及其子级导航到第二个视图(navButtons)及其子级。但我似乎无法将焦点转移到某些地方。我希望焦点在第一个布局的底部移到顶部,而在第二个布局的顶部移到顶部时移动。
我试图使第二个布局中的子级也可单击,可聚焦和focusableInTouch,但它似乎不起作用。
所以..我这样解决:
对于这两个视图中的第一个孩子(我以编程方式附加),我正在设置一个ID。然后,此ID与顶部布局最后一行中的项目的android:setNextFocusDownId和第一行底部布局中的项目的android:setNextFocusUpId一起使用。
这样,我可以在两个视图中的孩子之间切换焦点。
有关android:setNextFocusUpId等的更多信息。
http://developer.android.com/reference/android/view/View.html
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句