【Android】【UI】AbstactFragment

创建一个抽象类的Fragment, 然后子Fragment复用抽象类

abstract class AbstactFragment() : Fragment() {

    val viewModel: AbstactViewModel by inject()
    private lateinit var binding: AbstactFragmentBinding

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?,
    ): View? {
        binding = IssueBasicFragmentBinding.inflate(inflater, container, false)
        return binding.root
    }

    override fun onActivityCreated(savedInstanceState: Bundle?) {
        super.onActivityCreated(savedInstanceState)
        binding.carIssueSubMessageTv.visibility = View.GONE
        if (getLeftButtonContent() == "") {
            binding.carIssueButtonLeft.visibility = View.GONE
            binding.carIssueButtonRight.visibility = View.GONE
        } else {
            binding.carIssueButtonLeft.text = getLeftButtonContent()
            binding.carIssueButtonRight.text = getRightButtonContent()
            binding.carIssueButtonLeft.setOnClickListener { onLeftButtonClick() }
            binding.carIssueButtonRight.setOnClickListener { onRightButtonClick() }
        }
        binding.issueImage.setImageDrawable(getIssueImage())
        binding.carIssueMessageTv.text = getIssueMessage()
        if (getIssueSubMessage() != "") {
            binding.carIssueSubMessageTv.visibility = View.VISIBLE
            binding.carIssueSubMessageTv.text = getIssueSubMessage()
        }
        VibratorUtils.vibrate(context)
    }

    abstract fun onLeftButtonClick()
    abstract fun onRightButtonClick()
    abstract fun getLeftButtonContent(): String
    abstract fun getRightButtonContent(): String
    abstract fun getIssueImage(): Drawable
    abstract fun getIssueMessage(): String
    abstract fun getIssueSubMessage(): String

}

参考链接:Create BaseFragment and extend this Fragment in ChildFragment

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值