小编tra*_*nho的帖子

滚动不适用于CoordinatorLayout + parallax image + BottomSheetLayout

介绍

我有一个活动,它实现使用具有视差的标题图片和滚动内容的共用图案CoordinatorLayout,AppBarLayoutCollapsingToolbarLayout.我的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.

AppBarLayout + NestedScrollView

问题

谷歌推出了一个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

22
推荐指数
1
解决办法
1704
查看次数

自定义ViewGroup焦点处理

假设我有一个可自由聚焦的自定义ViewGroup,并且有一些可以聚焦的子视图(Android机顶盒的自定义垂直菜单应该在远程控制器上作出反应).

每当自定义ViewGroup获得焦点时,我都需要将焦点传递给一些子视图.

我设置descendantFocusabilitybeforeDescendants并设置OnFocusChangeListener为自定义ViewGroup但OnFocusChangeListener.onFocusChanged()从未调用.它看起来像beforeDescendants我预期的那样不起作用.实际设置beforeDescendants工作与设置相同afterDescendants- 焦点由最近的子视图拍摄,自定义ViewGroup没有机会决定哪个子视图应该关注焦点.

我怎样才能达到理想的行为?在ViewGroups中处理焦点的最佳实践是什么?

android focus android-custom-view viewgroup android-view

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

android网格视图从右到左放置项目

我正在使用阿拉伯语版本的Android应用程序.

在其中一个接口中,我有gridView.因此,要以正确的顺序显示项目,我必须从右到左显示GridView中的项目(以及从顶部到底部的corse).为此,我尝试在GridView中添加这些属性:

android:gravity="right"
android:layout_gravity="right"
Run Code Online (Sandbox Code Playgroud)

不幸的是,项目仍然从左到右显示.

有什么想法以正确的方式做到这一点?

android gridview arabic right-to-left android-gridview

18
推荐指数
2
解决办法
8870
查看次数

Android:DrmManager服务器死了

我们正在播放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 drm video-streaming android-videoview

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