小编gma*_*gma的帖子

从 Activity 访问 Fragment 中的视图绑定

我正在升级一个应用程序以删除所有合成内容并使用新的 ViewBinding 功能。到目前为止,只要您位于正在访问的类/布局内,一切都可以正常工作,但我在主活动中对布局元素有综合引用。

课堂片段:

    private var _binding: FragmentBinding? = null
    val binding get() = _binding!!
    private val compositeDisposable = CompositeDisposable()

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
        App.instance.getAppComponent().inject(this)
        _binding = FragmentBinding.inflate(inflater, container, false)
        return binding.root
    }
Run Code Online (Sandbox Code Playgroud)

在 MainActivity 中我有:

    private lateinit var mainBinding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(null)
        mainBinding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(mainBinding.root)
    }
Run Code Online (Sandbox Code Playgroud)

我有一些对话框方法,它们使用合成材料来调暗片段中的布局元素。例如。

//textView on fragment layout.xml
textView?.alpha = someFloat
Run Code Online (Sandbox Code Playgroud)

这在合成时工作得很好,但是我无法根据 Android 的文档让新的视图绑定工作。如何使用 ViewBinding 轻松模仿合成行为?到目前为止,它已经增加了大量的代码,除非创建了 Fragment 的视图,否则它无法工作,并且确实使代码变得更糟,更难以理解。我尝试使用主活动布局根视图的绑定,但出现“视图必须有标签”错误,并且所有布局都以<layout>. 任何帮助表示赞赏。

android android-fragments synthetic android-activity android-viewbinding

8
推荐指数
2
解决办法
6120
查看次数

将远程分支重置为之前的提交

我正在使用 SourceTree 并且对 git 仍然相当陌生。我试图将一个版本与另一个版本合并以开始在其远程分支上处理下一个版本,但它没有按我预期的那样工作。我能够通过将它拉到我的本地来回到我想要的提交,但是现在它只有一个“HEAD”标签,而“origin/[version]”仍然是大约 5 次提交。无论如何要强制远程分支忘记我所做的一切并跟踪我正在使用的当前提交?谢谢。

git github bitbucket atlassian-sourcetree

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