我需要创建2个片段和2个按钮在第一个片段一个将关闭当前片段,并开始另一个,第二个将关闭应用程序在所有,我做错了什么(每个片段在不同的持有人)?
第一个片段打开得很好,但当我点击第一个活动中的按钮时,它们根本不工作。
我怎样才能把这个写对呢?
MainActivity.kt
package com.example.webviewapp
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
supportFragmentManager
.beginTransaction()
.replace(R.id.fullcreen_holder, start_fragment.newInstance())
.commit()
}
}
起始片段.kt
package com.example.webviewapp
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
class start_fragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val view = inflater.inflate(R.layout.layout_start_fragment, container, false)
val agreeButton: Button = view.findViewById(R.id.privacy_agree)
val declineButton: Button = view.findViewById(R.id.privacy_decline)
agreeButton.setOnClickListener{
requireActivity().getSupportFragmentManager().beginTransaction()
.replace(R.id.webview_holder, webview_fragment())
.hide(start_fragment())
.commit();
}
declineButton.setOnClickListener{
android.os.Process.killProcess(android.os.Process.myPid())
}
return inflater!!.inflate(R.layout.layout_start_fragment, container, false)
}
companion object {
@JvmStatic
fun newInstance() = start_fragment()
}
}
1条答案
按热度按时间c9qzyr3d1#
让我们创建一个android资源目录。该目录名为navigation。然后我们创建navigation资源文件。该文件将具有nav_graph.xml的名称
接下来,我们将它放入您的activity_main.xml
在nav_graph.xml中,我们添加了目的地。
然后,当您启动应用程序时,您将以OneFragment开始如果您调用
findNavController().navigate(R.id.to_twoFragment)
,您将看到第二个片段您可以在here中阅读它您还需要依赖项
如果您想关闭应用程序,只需调用它
requireActivity().finishAndRemoveTask()