小编Kha*_*.NT的帖子

NestedScrollView里面没有使用Recyclerview

我有这样的布局:

<NestedScrollView>
     <RecyclerView> // vertical recycler view
          <RecyclerView/>  // horizontal recycler view
          <RecyclerView/>
          <RecyclerView/>
          ...
     <RecyclerView>
</NestedScrollView>
Run Code Online (Sandbox Code Playgroud)

结果看起来像Google Play商店: 在此输入图像描述

我在horizontal Recycler视图中禁用了NestedScrolling :

horizontalRecyclerView.setHasFixedSize(true);
horizontalRecyclerView.setNestedScrollingEnabled(false);
Run Code Online (Sandbox Code Playgroud)

我的问题:

vertical recyclerview不滚动一扔,每当ACTION_UP发生了,vertical recyclerview也停止滚动.

如何在Playstore vertical recyclerview内部nestedscrollviewhorizontal recyclerview内部vertical recyclerview嵌套并保持滚动顺畅.

解决了:

使用@vrund purohit的自定义嵌套滚动视图(下面的代码),并禁用nestedscroll垂直和水平recyclelerview:

verticalRecyclerView.setNestedScrollingEnabled(false);
... add each horizontal recyclerviews:
horizontalRecyclerView.setNestedScrollingEnabled(false);
Run Code Online (Sandbox Code Playgroud)

java android

28
推荐指数
3
解决办法
1万
查看次数

手动将歌曲添加到Mediastore作为音乐曲目

我想创建一个可以在线下载歌曲并将其添加到MediaStore的音乐播放器.我正在使用下载管理器,并允许MediaScanner在下载完成后扫描此文件.

DownloadManager.Request request ....
request.allowScanningByMediaScanner();
...
downloadManager.enqueue(request);
Run Code Online (Sandbox Code Playgroud)

它在android 5.0及以上版本中运行良好.
但是这首歌是使用编解码器(opus)下载的,这在Android下面的棒棒糖版本中不支持,因此MediaScanner不会将此文件添加到MediaStore.

这是我的问题,我的应用程序可以播放opus编解码器但是在下载后MediaStore中不存在该歌曲,所以我的应用程序找不到这首歌.

如何强制MediaScanner将下载的文件添加到MediaStore.Audio作为音乐曲目.如果不能,我怎样才能在下载完成后手动将此歌曲添加到MediaStore.Audio:

public class BroadcastDownloadComplete extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals("android.intent.action.DOWNLOAD_COMPLETE")) {

            //addSongToMediaStore(intent);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java android android-mediascanner

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

YouTube API V3 - 获取有关新Feed的推荐视频

作为关于实施和移植到API V3的YouTube官方文档,他们说:

YouTube Data API(v2)功能:检索视频推荐
v3 API不会检索仅包含为当前API用户推荐的视频的列表.但是,您可以通过调用activities.list方法并将home参数值设置为true 来使用v3 API查找推荐的视频.

但现在该参数home也已被弃用.目前,当我将home参数设置为时true,我只检索频道中最近上传的视频:YouTube中的热门视频.根本没有视频snippet.type=recommendation.

我需要在新Feed中显示经过身份验证的用户的推荐视频,但YouTube似乎完全弃用了此功能.有人有解决方案吗?
先谢谢!

youtube youtube-api youtube-data-api

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

Kotlin中的通配符为变量通用

是否可以在Kotlin中声明通用通配符,如Java中的此代码:

List<Integer> a = new ArrayList<>();
List<? extends Number> b = a;
Run Code Online (Sandbox Code Playgroud)

kotlin

10
推荐指数
2
解决办法
5863
查看次数

使用Firebase序列化/反序列化命名约定?

我想知道Firebase如何将POJO对象序列化/反序列化为json,是否使用Jackson或Gson或其他类似的库.
我在使用Firebase 命名约定方面遇到了麻烦.我的模特有点像这样:

class Data {
    private String someFieldName;
    private String anotherFieldName;
    public Data() {}
    public void setSomeFieldName(String) {...}
    public String getSomeFieldName(String) {...}
    public void setAnotherFieldName(String) {...}
    public String getAnotherFieldName() {...}
}
Run Code Online (Sandbox Code Playgroud)

Firebase中的预期结果应为:

{
    "some_field_name" : "...",
    "another_field_name" : "..."
}
Run Code Online (Sandbox Code Playgroud)

Gson我可以FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES用于我的目的,如在Gson doc中:

以下是"Java字段名称"--->"JSON字段名称"形式的几个示例:

  • someFieldName ---> some_field_name
  • _someFieldName ---> _some_field_name

  • aStringField ---> a_string_field

  • aURL ---> a_u_r_l

如何将我的POJO对象转换为具有特定命名约定的"Firebase值",反之亦然,或者有什么方法可以自定义序列化/反序列化过程?

谢谢!

android json firebase firebase-realtime-database

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

按下电源按钮时Android模拟器2.0崩溃

我正在使用Android模拟器2.0,所有的东西都是最新的.设备详情:

名称:Nexus_5X_API_23
CPU/ABI:Google API Intel Atom(x86)
路径:/home/khang/.android/avd/Nexus_5X_API_23.avd
目标:google_apis [Google API](API级别23)
皮肤:nexus_5x
SD卡:/ home /安康山/ .android/AVD/Nexus_5X_API_23.avd/sdcard.img
hw.dPad:没有
runtime.network.speed:全
hw.accelerometer:是
hw.device.name:Nexus 5X保护
vm.heapSize:100
hw.device.manufacturer:谷歌
hw.gps:是
image.androidVersion.api:23
hw.audioInput:是
image.sysdir.1:system-images/android-23/google_apis/x86/
tag.id:google_apis
hw.camera.back:模拟
hw. mainKeys:没有
AvdId:Nexus_5X_API_23
hw.camera.front:模拟
hw.lcd.density:420
runtime.scalefactor:汽车
avd.ini.displayname:Nexus 5X保护API 23
hw.gpu.mode:汽车
hw.device.hash2:MD5: 1be89bc42ec9644d4b77968b23474980
hw.ramSize:1536
hw.trackBall:没有
hw.battery:是
hw.cpu.ncore:2
hw.sdCard:是
tag.display:谷歌的API
runtime.network.latency:无
hw.keyboard:是
hw.sensors. proximity:yes
disk.dataPartition.size:800M
hw.sensors.orientation:yes
avd.i ni.encoding:UTF-8
hw.gpu.enabled:是的

我尝试测试我的广播接收器,它捕获锁定/解锁屏幕动作.但是我无法在Emulator 2.0中模拟它,因为每当我按下电源按钮(或Ctrl P),android模拟器自动关闭(没有错误信息).

我认为电源按钮导致问题,但当我安装一个可以强制设备睡眠(锁定屏幕)的应用程序时,我的android模拟器继续关闭,没有任何日志或错误消息.

有谁知道这个问题?问我是否想要获得更多细节.

android android-emulator android-studio

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

带有Python3.x的Pyinstaller

我想使用Pyinstaller在Linux 中将脚本编译为二进制可执行文件,但是问题是Pyinstaller使用python 2.x而不是python 3.x编译。(构建过程成功,但是我的脚本仅适用于python2.x。)。日志:

$ pyinstaller script.py

22信息:PyInstaller:3.1.1

22信息:Python:2.7.6

22 INFO:平台:Linux-4.2.0-34-generic-x86_64-with-Ubuntu-14.04

...

如何配置Pyinstaller以使用Python 3.x编译我的脚本。


我已经解决了我的问题,请使用pip3安装Pyinstaller:

sudo pip3 install pyinstaller
Run Code Online (Sandbox Code Playgroud)

感谢帮助!

pyinstaller python-3.x

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

Firebase身份验证 - 阻止用户同时登录一个帐户

我使用方法Firebase.authWithPassword(电子邮件,密码,...)来验证用户.问题是用户何时登录,如何阻止使用此帐户登录.

java android firebase firebase-security firebase-authentication

0
推荐指数
1
解决办法
849
查看次数