我有一个活动,它实现使用具有视差的标题图片和滚动内容的共用图案CoordinatorLayout
,AppBarLayout
和CollapsingToolbarLayout
.我的xml布局如下所示:
<android.support.design.widget.CoordinatorLayout
android:fitsSystemWindows="true"
android:layout_height="match_parent"
android:layout_width="match_parent">
<android.support.design.widget.AppBarLayout
android:fitsSystemWindows="true"
android:id="@+id/appbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.design.widget.CollapsingToolbarLayout
android:fitsSystemWindows="true"
android:layout_height="wrap_content"
android:layout_width="match_parent"
app:contentScrim="?attr/colorPrimary"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<TextView
android:background="@color/colorAccent"
android:gravity="center"
android:layout_height="250dp"
android:layout_width="match_parent"
android:text="ParallaxImage"
app:layout_collapseMode="parallax"/>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_height="?attr/actionBarSize"
android:layout_width="match_parent"
app:layout_collapseMode="pin"
app:popupTheme="@style/AppTheme.PopupOverlay"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:id="@+id/content"
android:layout_height="match_parent"
android:layout_width="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<TextView
android:layout_height="wrap_content"
android:layout_margin="@dimen/text_margin"
android:layout_width="wrap_content"
android:text="@string/large_text"/>
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
正如您在下面的gif动画中看到的,一切正常.您可以从内容NestedScrollView
以及Toolbar
视差或视差中滚动整个屏幕View
.
谷歌推出了一个BottomSheetBehavior
类(Android设计支持库23.2),以帮助开发人员实现Bottom表.我的带有Bottom工作表的xml布局如下所示:
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:theme="@style/AppTheme.AppBarOverlay">
<!-- ommited …
Run Code Online (Sandbox Code Playgroud) android android-coordinatorlayout android-collapsingtoolbarlayout android-appbarlayout bottom-sheet
假设我有一个可自由聚焦的自定义ViewGroup,并且有一些可以聚焦的子视图(Android机顶盒的自定义垂直菜单应该在远程控制器上作出反应).
每当自定义ViewGroup获得焦点时,我都需要将焦点传递给一些子视图.
我设置descendantFocusability
为beforeDescendants
并设置OnFocusChangeListener
为自定义ViewGroup但OnFocusChangeListener.onFocusChanged()
从未调用.它看起来像beforeDescendants
我预期的那样不起作用.实际设置beforeDescendants
工作与设置相同afterDescendants
- 焦点由最近的子视图拍摄,自定义ViewGroup没有机会决定哪个子视图应该关注焦点.
我怎样才能达到理想的行为?在ViewGroup
s中处理焦点的最佳实践是什么?
我正在使用阿拉伯语版本的Android应用程序.
在其中一个接口中,我有gridView.因此,要以正确的顺序显示项目,我必须从右到左显示GridView中的项目(以及从顶部到底部的corse).为此,我尝试在GridView中添加这些属性:
android:gravity="right"
android:layout_gravity="right"
Run Code Online (Sandbox Code Playgroud)
不幸的是,项目仍然从左到右显示.
有什么想法以正确的方式做到这一点?
我们正在播放Widevine受保护的电影.我们的问题是媒体播放器在某些设备上崩溃.
我们知道"有问题"的Widevine支持,但有些设备,例如三星Galaxy Tab2 10.1 P5100,我们期望DRM应该工作.
我们有P5100用于测试,它完全适合我们,但客户有相同的设备(原始ROM,没有根),在他们的设备上我们的应用程序崩溃.有趣的是,这个问题并不适用于所有相同类型的设备,只适用于某些设备,这意味着在P5100上它可能会完美运行,但是例如你妻子的P5100没有.如果播放器崩溃,则它永远或永远发生,因此很容易模拟.
当然,即使是相同设备的类型也可能会有所不同,但仍然......看看我们从logcat获得的错误:
08-07 12:36:49.455 2901 3099 I DrmManagerClient: getErrorType return TYPE_PROCESS_DRM_INFO_FAILED becauseof widevine or STATUS_ERROR
08-07 12:36:49.455 2901 3099 E Clix : [Activity_Player]::[DRM]::[TYPE_PROCESS_DRM_INFO_FAILED]
08-07 12:36:49.455 2901 2913 W DrmManagerClientImpl(Native): DrmManager server died!
08-07 12:36:49.455 118 3116 D HTTPBase: [4] Network BandWidth = 349 Kbps
08-07 12:36:49.455 118 328 W DrmManagerClientImpl(Native): DrmManager server died!
08-07 12:36:49.455 358 640 W DrmManagerClientImpl(Native): DrmManager server died!
08-07 12:36:49.462 102 102 I ServiceManager: service 'drm.drmManager' died
Run Code Online (Sandbox Code Playgroud)
我们的理解是,这个日志意味着本地Widevine进程在许可证获取处理期间死亡 - 看起来不同设备和固件版本的Widevine兼容性甚至在三星新设备上也不是最好的.
任何人都有同样的问题,可以帮助我们吗? …
android ×4
android-collapsingtoolbarlayout ×1
android-view ×1
arabic ×1
bottom-sheet ×1
drm ×1
focus ×1
gridview ×1
viewgroup ×1