【问题标题】:setOnclickListener event is not working for Floating action button in android?setOnclickListener 事件不适用于 android 中的浮动操作按钮?
【发布时间】:2020-12-18 10:38:36
【问题描述】:

这是用于此的 xml 代码.....这是带有回收器视图的约束布局

<com.google.android.material.floatingactionbutton.FloatingActionButton
    android:id="@+id/fab_add"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginEnd="44dp"
    android:layout_marginBottom="48dp"
    android:focusable="true"
    android:clickable="true"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    android:src="@drawable/ic_add"
    android:contentDescription="@string/add_book" />

这里有活动代码

private lateinit var binding: ActivityMainBinding

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    binding = ActivityMainBinding.inflate(layoutInflater)
    val fab = binding.fabAdd

    fab.setOnClickListener {
        val intent = Intent(this,AddActivity::class.java)
        startActivity(intent)
    }
}

}

【问题讨论】:

    标签: android kotlin floating-action-button


    【解决方案1】:

    应该这样做。

    您必须将setContentView 设为rootview binding 而不是layout

    private lateinit var binding: ActivityMainBinding
    
    @Override
    fun onCreate(savedInstanceState: Bundle) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)
    
        binding.fab_add.setOnClickListener {
           val intent = Intent(this,AddActivity::class.java)
           startActivity(intent)
        }  
    }
    

    【讨论】:

    • 我试过了,但现在应用程序一直停止
    • @AnkitVerma 请在问题内发布错误日志,以便我了解可能是其他问题。
    • 解决了我的错误...我的结果 avtivity 即 AddActivity 在 oncreate 函数上方有绑定定义,这就是错误...感谢支持
    • @AnkitVerma 很高兴它有帮助!请点击复选标记正确接受答案,以便对其他人有所帮助。
    【解决方案2】:

    试试

    private lateinit var binding: ActivityMainBinding
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
    
    
        val fab = binding.fabAdd
    
        fab.setOnClickListener {
            val intent = Intent(this,AddActivity::class.java)
            startActivity(intent)
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-05-24
      • 1970-01-01
      • 2017-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-08
      • 2016-03-03
      • 1970-01-01
      相关资源
      最近更新 更多