小编Kai*_*ser的帖子

我应该使用什么事件在Firebase Analytics上发送"按下按钮"事件

我发现最适合的是SELECT_CONTENT,但正如文档所说:

选择内容事件.此通用事件表示用户已在应用中选择了某种类型的某些内容.内容可以是您应用中的任何对象.此活动可以帮助您识别应用中的热门内容和内容类别.

我正在将我的GA事件移动到FB,我希望保持我所拥有的舒适格式:
screen_name(category)| button_name(动作)| 值(opt_value)

我怎样才能实现这一目标?我知道我可以使用屏幕名称和按钮名称和值的自定义参数创建自定义事件但是我的参数不会在FB仪表板中可用,除非我使用值为param的int(我需要一个字符串)正如我在这里写的那样,我需要为每个按钮提前创建一个观众,这样我以后就可以用它来过滤,这完全没有任何意义(!).

此外,我现在不想与BigQuery集成.

谢谢.

android google-analytics firebase firebase-analytics

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

如何在按钮单击该片段时替换片段?

我有一个包含多个片段的活动.Activity最初有片段,里面有两个按钮.单击此按钮后,我必须用新片段替换片段.每个片段都有各种小部件,并将当前片段替换为各种事件.

这是我的问题.我怎样才能做到这一点.

建议我的想法.

android android-fragments android-activity

13
推荐指数
2
解决办法
3万
查看次数

将 EventBus 与 ViewPager 一起使用时,有时会出现“已添加片段”

单击按钮后,我正在使用 EventBus 从一个片段导航到另一个片段。有时且不可重现,会出现以下错误:

Fatal Exception: java.lang.IllegalStateException: Fragment already added: FragmentQuestion3_2{82d0763} (e57d5f9c-c80b-4f99-a4f4-e844bdabdef5) id=0x7f0a0487}
       at androidx.fragment.app.FragmentStore.addFragment(FragmentStore.java:67)
       at androidx.fragment.app.FragmentManager.addFragment(FragmentManager.java:1563)
       at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:405)
       at androidx.fragment.app.FragmentManager.executeOps(FragmentManager.java:2167)
       at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1990)
       at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1945)
       at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1847)
       at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:413)
       at android.os.Handler.handleCallback(Handler.java:873)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loop(Looper.java:216)
       at android.app.ActivityThread.main(ActivityThread.java:7211)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:975)
Run Code Online (Sandbox Code Playgroud)

这个问题有一些答案,但自从我使用 EventBus 以来,对我没有任何帮助。

这是显然已经添加的片段:

public class FragmentQuestion3_2 extends BaseFragment {

    private ViewModelQuestionAnswer viewModel;
    private String category;
    private ImageView imageCategory;
    private TextView question3;

    PagerAdapter viewPagerAdapter;
    public NonSwipeAbleViewPager optionAnswerViewPager;

    private boolean isFragmentLoaded = false;

    public FragmentQuestion3_2() {
        // Required empty …
Run Code Online (Sandbox Code Playgroud)

java android event-bus android-fragments

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

使用 DI 将 BLoC 作为单例注入的效果以及在哪里关闭流?

我正在使用inject.dart将我的块作为单例注入,这是一种不好的做法,即会导致内存泄漏吗?

由于我使用的所有流都是来自 RxDart 的广播流,我想知道单例是否会工作得更好?

如果不是不好的做法,那么关闭流的最佳位置是什么?由于其他小部件可能仍在使用流,因此在有状态小部件(订阅 bloc)的 Dispose() 中执行此操作是否会导致问题?

dependency-injection stream flutter rxdart bloc

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

在片段中垂直居中RecyclerView

首先,我在Android中有点新手.我目前有一个加载片段的活动,在这个片段中,我实例化了一个RecyclerView(水平方向).

这是我目前的布局:

我的主要:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/red"
    android:orientation="vertical">
        <FrameLayout
            android:id="@+id/container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/green">
        </FrameLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我的片段:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_vertical"
    android:orientation="vertical"
    android:background="@color/yellow">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/fragment_atelier_recycler_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_centerInParent="true"
        android:background="#FFE5E5E5"
        android:scrollbarStyle="insideOverlay"
        />

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

我的RecyclerView适配器的项目布局:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:background="@color/gray">

    <ImageView
        android:id="@+id/item_icon"
        android:layout_width="64dp"
        android:layout_height="64dp"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginTop="1dp"
        android:layout_marginBottom="1dp"
        android:layout_gravity="center"
        android:contentDescription="icon"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我试着在几个小时内垂直居中我的RecyclerView而没有成功(通过使用gravity,layout_centerVertical等......).也许我错过了关于wrap_content/match_parent或线性/相对规格的内容.

在此先感谢,祝你有个美好的一天:)

android android-layout android-fragments

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

如何将editText值传递给viewModel和Livedata(Kotlin)

我正在研究Android + Kotlin,并提供了一个简单的示例来了解LiveData + ViewModel。这很简单:我有一个根活动和两个片段。FragmentOne有两个EditText。该值相加,我需要将结果传递给ViewModel。然后,我在根活动和FragmentTwo中都使用observe查看更改后的数据。

片段一

class FragmentOne: Fragment() {
   private val model by lazy { ViewModelProviders.of(activity).get(MyViewModel::class.java) }
   var resultSum:Int = 0

   override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
     val view = inflater?.inflate(R.layout.fragment_one,container,false)
     val btn = view?.findViewById<Button>(R.id.sendToModel)
     btn?.setOnClickListener({
         val field1 = n1.text.toString().toInt()
         val field2 = n2.text.toString().toInt()
         resultSum = field1 + field2
         model.update()
     })
     return view
  }
}
Run Code Online (Sandbox Code Playgroud)

viewModel

class MyViewModel: ViewModel() {
   private val fragment by lazy {FragmentOne()}
   private var _result = MutableLiveData<Int>().apply { value = 0 …
Run Code Online (Sandbox Code Playgroud)

android viewmodel android-edittext kotlin

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

有没有办法对 Youtube 或 Twitch 上的直播进行截图?

我想让我的软件定期(每 5 分钟左右)截取当前正在发生的直播的屏幕截图。我在 Youtube 和 Twitch 上都标记了这个问题,因为这两个网站都在直播,所以适用于其中任何一个的答案都是完美的。

我研究了一些较旧的库,例如 youtube-dl 和 livestreamer,但它们是 CLI,下载文件然后需要使用视频播放器读取。

javascript youtube screenshot twitch

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

向上/向下滚动时如何隐藏/显示视图?

向上/向下滚动AndroidFoodpanda应用程序时如何隐藏/显示视图

在此处输入图片说明

我想在ScrollView向上/向下时隐藏/显示视图(线性或相对布局),就像上面的 gif 一样。

但是我的应用程序我不使用 Recyclerview 或列表视图(只是 textview)。

我怎样才能创建它?

谢谢!

java layout android scrollview

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

如何为 RecyclerView 添加可访问性?

我需要添加 RecyclerView 的可访问性。我在 RecyclerView 中有 7 个项目,我想要对讲来一次读取它们。

这是我的回收器视图小部件。请指教。属性importantforaccessibility= "yes"没有帮助。

   <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="24dp"
        android:layout_marginRight="16dp"
        android:orientation="vertical"
        android:paddingBottom="16dp">
            <TextView
            android:id="@+id/txt_section"

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            />

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/recycler_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:nestedScrollingEnabled="false"
            android:orientation="vertical"
            android:importantForAccessibility="yes"
          app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
Run Code Online (Sandbox Code Playgroud)

Recycler适配器视图如下:

class ExitRowAgreementAdapter(val items: List<String>, val context: Context) :
    RecyclerView.Adapter<ExitRowAgreementAdapter.ExitRowViewHolder>() {

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ExitRowViewHolder {
        return ExitRowViewHolder(
            LayoutInflater.from(context).inflate(
                R.layout.row_items,
                parent,
                false
            )
        )
    }

    override fun getItemCount(): Int {
        return items.size
    }

    override fun onBindViewHolder(holder: ExitRowViewHolder, position: Int) {
        holder.txtExitRowItem.text = items.get(position) …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview

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

我的布局文件没有显示在 setContent(R.layout.xml 文件)..?

我已经编写了我的代码,但是在我使用view = ..(R.layout.my_message)它时的代码中显示错误,因为该文件在已经创建时不存在。再次重写名称时,我得到了activity_list_item代码中不存在的选项。我如何获取我的布局 xml 文件?

项目结构 项目结构

我已经尝试了很多并进行了搜索,但一无所获。

    class MessageAdapter(val context: Context) : RecyclerView.Adapter<MessageAdapter.MessageViewHolder>(){

        companion object {
            const val VIEW_TYPE_MESSAGE_SENT = 1
           const val VIEW_TYPE_MESSAGE_RECEIVED = 2
        }

        private val messages: ArrayList<Message> = ArrayList()

        fun addMessage(message: Message){
            messages.add(message)
            notifyDataSetChanged()
        }

        override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MessageViewHolder {
            val view: View

            if (viewType == VIEW_TYPE_MESSAGE_SENT) {
              view= LayoutInflater.from(parent.context).inflate(R.layout.my_message, parent, false)
                return MessageViewHolder(view)
            } else  {
                view = LayoutInflater.from(parent.context).inflate(R.layout.other_message, parent, false)
                return OtherMessageViewHolder(view)
            }

        }

        override fun getItemCount(): …
Run Code Online (Sandbox Code Playgroud)

android android-layout kotlin

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

如何以编程方式滚动到底部(Android,kotlin)?

我有一个 ScrollView,里面有很多布局,逐步显示(按钮 1 显示布局 1,...)。而且,作为最后一步,我的最后一个按钮显示页脚。

每次出现布局时,我希望滚动视图滚动到底部。当我的页脚出现时也是如此。

我尝试了 Stack 上发布的解决方案,但它们对我不起作用...: https ://stackoverflow.com/a/34866634/11656272 或binding.scroll.scrollTo(0, Int.MAX_VALUE)

我还尝试使用“findViewById”而不是绑定......

任何想法?

布局文件

<?xml version="1.0" encoding="utf-8"?>
<layout 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">

   <RelativeLayout
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:layout_gravity="center_horizontal"
   android:layout_margin="10dp">

   <!-- scrollView -->
   <ScrollView
      android:id="@+id/scroll"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:layout_above="@id/footerLayout">

      <LinearLayout
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:orientation="vertical">

      <Button
         android:id="@+id/btn1"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="Button 1" />

      <LinearLayout
         android:id="@+id/layout1"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:orientation="vertical"
         android:visibility="gone">
         <!-- ... -->
      </LinearLayout>

      <!-- same for btn2, layout2, ... -->

      <LinearLayout
         android:id="@+id/layoutLast"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:orientation="vertical"
         android:visibility="gone">

         <Button
         android:id="@+id/btnLast"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="Last button" />
      </LinearLayout>
      </LinearLayout> …
Run Code Online (Sandbox Code Playgroud)

android scrollview kotlin

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

如何使用 JavaScript 从 Firestore 获取数组?

在我的下面的应用程序中,我首先获取 4 个玩家的 uid,然后查询每个用户名和设备令牌 ID,它们分别存储在我的数据库中。

为了保存读取,我现在将这两个信息存储在数组中的同一文档中。由于我是 JavaScript 新手,我现在不知道如何从 Firestore 获取此数组并访问该数组中存储的数据。

我知道如何使用 Android/Java 从 Firestore 获取数组,但这似乎不适用于 JavaScript。

任何帮助深表感谢!

这是我在云函数中使用的代码:


...

// This is where the array is stored, I now need to get the array and access the data of it
      admin.firestore().collection("User").doc(uid_player_1).collection("User Info").doc("UsernameToken").get().then(queryResult =>{
        // You need to get the array that is stored there. The first value (0) there is the username, the second is the device token

console.log(queryResult)

      });

...

Run Code Online (Sandbox Code Playgroud)

这是我得到的日志:


QueryDocumentSnapshot {
  _fieldsProto: 
   { usernameToken: { arrayValue: [Object], …
Run Code Online (Sandbox Code Playgroud)

javascript node.js firebase google-cloud-functions google-cloud-firestore

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