小编and*_*dXP的帖子

Recyclerview 不在 Nested ScrollView 内滚动

Recyclerview这是在Coordinatorlayout> NestedScrollview>ViewPagerViewPager有3个片段,一个具有正与帮助图片库Recyclerview。每当我尝试向上或向下滚动时,它根本不滚动。我已经设置好了photosRecycler.setNestedScrollingEnabled(false);,一旦我删除这条线,我就会让滚动只向下工作,当我试图向上移动时,它会随着父级向上移动Nestedscrollview

我的布局管理器也将 StaggeredGrid 显示为 Grid 我需要获得这种布局

在此处输入图片说明

这是我的 Nestedscrollview 父布局

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:background="?android:attr/colorBackground"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.google.android.material.appbar.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <com.google.android.material.appbar.CollapsingToolbarLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:expandedTitleMarginStart="48dp"
            app:expandedTitleMarginEnd="64dp"
            app:contentScrim="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|enterAlways">

            <androidx.constraintlayout.widget.ConstraintLayout


                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="?android:colorBackground">


                <ImageView

                    android:layout_width="match_parent"
                    android:layout_height="500dp"
                    android:src="@color/custom_transparent_colorBlack"
                    android:scaleType="centerCrop"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintHorizontal_bias="0.0"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent"
                    />

                <de.hdodenhof.circleimageview.CircleImageView

                    android:layout_width="128dp"
                    android:layout_height="128dp"
                    app:layout_constraintBottom_toBottomOf="@+id/coverPhoto"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="@+id/coverPhoto"
                    app:layout_constraintVertical_bias="0.44"
                    tools:srcCompat="@tools:sample/avatars" />



            </androidx.constraintlayout.widget.ConstraintLayout>
        </com.google.android.material.appbar.CollapsingToolbarLayout>
    </com.google.android.material.appbar.AppBarLayout>
    <androidx.core.widget.NestedScrollView
        android:id="@+id/up_NestedScrollView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:overScrollMode="never"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" …
Run Code Online (Sandbox Code Playgroud)

java android android-scrollview android-gridlayout android-recyclerview

11
推荐指数
1
解决办法
1103
查看次数

Firebase功能用于从Firebase DB获取数据以进行推送通知

我与firebase数据库和Firebase云消息传递聊天应用程序.我可以通过控制台发送firebase通知,但在实际情况下它应该是自动的.为了进行自动通知,我的朋友为我写了Index.js(在云函数中添加)文件,但它没有发送通知.

根据我们的逻辑函数,应该在任何新条目(在任何节点或任何房间中)触发,并通过firebase函数获取这些值,并向FCM服务器发出post请求以通知接收方设备(从token_To获取接收方设备的值) ).

  1. 信息
  2. Message_From
  3. 时间
  4. 类型
  5. token_To

Firebase数据库结构

Index.js

var functions = require('firebase-functions');
var admin = require('firebase-admin');


var serviceAccount = require('./demofcm-78aad-firebase-adminsdk-4v1ot-2764e7b580.json');
admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://demofcm-78aad.firebaseio.com/"
})

// // Create and Deploy Your First Cloud Functions
// // https://firebase.google.com/docs/functions/write-firebase-functions
//
// exports.helloWorld = functions.https.onRequest((request, response) => {
//  response.send("Hello from Firebase!");
// });
exports.setUserNode = functions.auth.user().onCreate(event => {
  // ...
});

exports.notifyMsg = functions.database.ref('/{chatroom}/{mid}/')
    .onWrite(event => {

       if (!event.data.val()) {
         return console.log('Message Deleted');
       }

       const getDeviceTokensPromise = admin.database().ref('/{chatroom}/{mid}/token_to').once('value');


       return Promise.all([getDeviceTokensPromise]).then(results …
Run Code Online (Sandbox Code Playgroud)

javascript android node.js firebase firebase-realtime-database

7
推荐指数
1
解决办法
2870
查看次数

浮动操作按钮在底部片断折叠状态下不显示

我有BottomSheetFragmentrecyclerview按钮fabFloating action button我在出现时遇到问题BottomSheetBehavior.STATE_COLLAPSED。当我将底部工作表扩展到全屏时,Fab 按钮就会出现,我尝试了几种方法,但没有任何效果。

我在布局中尝试了不同的 fab 选项以使其可见,但到目前为止还没有运气。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/topBarBottomSheet"
    android:clipToPadding="true"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    >

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/topBarBottomSheet">
        <include layout="@layout/progressbar_framelayout" />

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/recycleviewGallery"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:clipToPadding="false"
            android:paddingTop="@dimen/list_item_spacing_half"
            android:paddingBottom="@dimen/list_item_spacing_half"
            app:layout_behavior="@string/appbar_scrolling_view_behavior"
            tools:listitem="@layout/recycler_view_item_3"
            tools:spanCount="3"
            tools:layoutManager="GridLayoutManager" />



    </FrameLayout>
    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/fabBottomSheet"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="16dp"
        app:backgroundTint="@color/greenElaxer"
        app:fabSize="normal"
        app:srcCompat="@drawable/ic_check"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"

        android:overScrollMode="always"

         >

    </com.google.android.material.floatingactionbutton.FloatingActionButton>


</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

BottomSheetFragment

public class BottomSheet extends BottomSheetDialogFragment {

    FloatingActionButton fab;
    RecyclerView recyclerView;
    // TODO: Customize parameters
    public …
Run Code Online (Sandbox Code Playgroud)

java android floating-action-button bottom-sheet

6
推荐指数
1
解决办法
567
查看次数

YouTube可能会禁止您的非活动项目访问YouTube数据API服务

我曾经Youtube Data API用来获取youtube视频,但是从youtube收到邮件后说api由于无效而被禁用。

由于YouTube已停用90天,因此YouTube已将其禁用,因此YouTube数据API无法正常工作。我无法调用它(在API控制台中启用),即使删除并添加回新的删除也是如此。请帮忙。

当我使用api密钥从Web浏览器调用时出现错误,我也尝试生成新的api密钥,也删除并重新生成了新的api密钥,但仍然没有运气。

“未配置访问权限。YouTube数据API之前未在项目264969722993中使用,或者已被禁用。请访问https://console.developers.google.com/apis/api/youtube.googleapis.com/overview?project启用它。 = 264969722993, 然后重试。如果最近启用了此API,请等待几分钟,以使操作传播到我们的系统并重试。”

youtube youtube-api android-youtube-api youtube-data-api

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

Android-如何使用按钮显示空白网格视图

我想显示空白动态网格这样的

空白网格 我试图像这样填充网格,但为此我需要将drawable int数组发送到baseadapter.我知道它不是正确的方法来做到这一点

请考虑以下情况:

1)用户将获得这种带有空白网格的屏幕,其中"+"按钮将图像添加到网格,如果图像存在于网格上,则显示" - "按钮

2)一旦用户填充GridView的第二个空白网格,就立即动态增加网格.

考虑这个问题太替代问题

java android gridview adapter android-gridview

4
推荐指数
1
解决办法
1030
查看次数

两个ArrayList一个RecyclerView适配器

我有一个聊天屏幕,我可以与其他用户聊天,我将聊天数据(消息,时间和发件人通过列表)发送到RecyclerAdapter,用数据填充聊天视图.现在我还有一个列表,其中包含不同布局的数据.像这样

演示屏幕

这是我的方法,我将第二个arraylist称为RecyclerAdapter

public void TransferResultTo_Activity(List<Image_data_Wrapper> list) {
        Log.d(TAG,"Here is data Result From AsyncTask "+list.size());
        getResult=list;
        Image_data_Wrapper Image=getResult.get(0);
        Log.d(TAG,"Result from Image data "+Image.getPage_Title());
        adapter=new Chat_Adapter(this,message,getResult);
        adapter.notifyDataSetChanged();
    }
Run Code Online (Sandbox Code Playgroud)

如上所述,当我尝试通过recyclerView.setAdapter(adapter);它调用适配器时,从屏幕中删除所有消息并显示我的图像数据.但我想保留所有消息,并通过新列表显示数据与数据

这是我的聊天适配器

public class Chat_Adapter extends RecyclerView.Adapter<Chat_Adapter.ViewHolder> {

    private String UserID;
    private Context context;
    //TAG FOR TRACKING SELF MESSAGE
    private int Self_Msg=0;
    //ARRAYLIST OF MESSAGES OBJECT CONTAINING ALL THE MESSAGES IN THE THREAD
    private List<Chat_Wrapper> arrayList_message;
    public static final String TAG="###CHAT_ADAPTER###";
    private List<Image_data_Wrapper> data_Result;
    boolean valtype;


    public Chat_Adapter(Context context, List<Chat_Wrapper> message) { …
Run Code Online (Sandbox Code Playgroud)

java android arraylist android-recyclerview

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

带有透明状态栏的全屏片段(以编程方式)

我有一个基于单个活动和多个片段的应用程序,一些片段需要在进入片段时全屏显示并在退出时从全屏退出。我目前正在使用标志来显示全屏,Android Kitkat但我认为这不是最佳方式。我也读过,ImmersiveMode但它在较低的 Android 版本中不起作用。目前我正在使用这些方法进行全屏进入和退出。

//This method not showing transparent status bar also navigation bar and not showing system icons either
public static void  setFullscreen(Activity activity) {
        if (Build.VERSION.SDK_INT > 10) {
            int flags = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_FULLSCREEN;
            boolean isImmersiveAvailable = android.os.Build.VERSION.SDK_INT >= 19;
            if (isImmersiveAvailable) {
                flags |= View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
                        View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
            }

            activity.getWindow().getDecorView().setSystemUiVisibility(flags);
        } else {
            activity.getWindow()
                    .setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        }
    }

    public static void exitFullscreen(Activity activity) {
        if (Build.VERSION.SDK_INT > 10) { …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-actionbar

4
推荐指数
2
解决办法
4567
查看次数

如何计算两个经纬度之间的距离

我想计算我已阅读的有关Haversine公式余弦球定律的两点经纬度之间的距离,以计算两点之间的距离,但我的主要动机是获得以米为单位的两点之间的最佳位置差。

例如,两个设备彼此相邻放置,并且android设备正在将位置发送到服务器,因此我们需要获取每个设备的位置,并以米为单位计算这两个设备之间的最小距离。当设备彼此相邻放置时,位置差异应为2-3米

那么,当设备彼此相邻时,有两种可能的方法来计算两台设备之间的最小距离(以米为单位)

编辑1:我需要计算以公里或英里为单位的距离,这在设备彼此相邻时会有很大差异。我发现Haversine公式余弦的球形法则是计算的最佳方法,但是我需要在这些公式中做更多的工作才能使2个设备之间的差异最小化。这个问题与这个问题无关

java navigation android google-maps haversine

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

Exoplayer无法在本地存储上播放本地文件

我正在尝试在这样的设备中播放本地文件

String filePath="/storage/emulated/0/MyFiles/Media/Video/Xvid1509401908940.mp4"
File file=new File(filePath);
Uri localUri=Uri.fromFile(file);
exoPlayer_main.initializePlayer(localUri);
Run Code Online (Sandbox Code Playgroud)

获取ClassCastException

11-01 04:45:23.356 27145-29468/com.example.com.pro_working1 E/LoadTask: Unexpected exception loading stream
                                                                         java.lang.ClassCastException: libcore.net.url.FileURLConnection cannot be cast to java.net.HttpURLConnection
                                                                             at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.makeConnection(DefaultHttpDataSource.java:393)
                                                                             at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.makeConnection(DefaultHttpDataSource.java:350)
                                                                             at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:192)
                                                                             at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:692)
                                                                             at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:315)
                                                                             at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
                                                                             at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
                                                                             at java.lang.Thread.run(Thread.java:818)
11-01 04:45:23.357 27145-29468/com.example.com.pro_working1 E/LoadTask: Unexpected exception loading stream
                                                                         java.lang.ClassCastException: libcore.net.url.FileURLConnection cannot be cast to java.net.HttpURLConnection
                                                                             at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.makeConnection(DefaultHttpDataSource.java:393)
                                                                             at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.makeConnection(DefaultHttpDataSource.java:350)
                                                                             at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:192)
                                                                             at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:692)
                                                                             at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:315)
                                                                             at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
                                                                             at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
                                                                             at java.lang.Thread.run(Thread.java:818)
Run Code Online (Sandbox Code Playgroud)

我的ExoPlayer方法,用于初始化exoplayer

 public void initializePlayer(Uri uri){
        Log.d(TAG,"Init Player Calling"); …
Run Code Online (Sandbox Code Playgroud)

java android uri exoplayer

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

Android 服务未更新位置

我需要每 1 分钟和每 5 米位移更新一次融合位置(我知道这是不好的做法,但为了测试和显示在 Log 中),我通过按钮开始服务按下按钮后立即按下我在 logcat 中找到位置但是只有一次。根据服务类onLocationChanged应每 1 分钟调用一次,但即使我的 GPS 几乎每分钟打开一次,然后在一段时间后关闭,它也不会再次调用,但 Logcat 中仍然没有位置更新。我需要服务类来保持更新位置而不影响UI 或主线程

这是 logcat 只显示一次位置更新

09-16 03:13:37.125 10419-10419/com.example.com.pro_working1 D/===Location Service===: Service onConnected Calling
09-16 03:13:37.125 10419-10419/com.example.com.pro_working1 D/===Location Service===: Start Location Update is Calling
09-16 03:13:38.315 10419-10419/com.example.com.pro_working1 D/===Location Service===: Service OnLocationChanged Calling
09-16 03:13:38.315 10419-10419/com.example.com.pro_working1 D/===Location Service===: Here is Updated Locations: Latitude 28.5XXXXX Longitude 77.2XXXXX
09-16 03:13:38.315 10419-10419/com.example.com.pro_working1 D/===Location Service===: Sending Location Starting  Accuracy is: 37.5
Run Code Online (Sandbox Code Playgroud)

这是我的服务类

public class Location_Service_background extends Service implements …
Run Code Online (Sandbox Code Playgroud)

java service android location android-fusedlocation

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