Kotlin片段
我有一个简单的活动。 在这个活动中,我想开始一个片段。 但片段不启动。
这是我的活动
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) //start Homefragment startHomeFragment() } /** * Create Homefragment */ private fun startHomeFragment() { val homeFragment = fragmentManager.findFragmentByTag(statics.TAG) ?: HomeFragment() fragmentManager.beginTransaction() .replace(R.id.container, homeFragment, statics.TAG) .commit() }
这是我的片段
class HomeFragment : Fragment() { object statics { @JvmField val TAG = "Homefragment" } override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { return super.onCreateView(inflater, container, savedInstanceState) inflater?.inflate(R.layout.fragment_home, container) background_home.setBackgroundResource(R.drawable.gc_bg_home)
所有的代码之后
return super.onCreateView(inflater, container, savedInstanceState)
是无法达到的。 只要阅读IDE警告。
此外,只有从onCreateView
返回时,布局才会附加,即return inflater.inflate(...)
。
解决了:
class HomeFragment:Fragment(){
object statics { @JvmField val TAG = "Homefragment" } override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { Toast.makeText(activity, "HomeFragment", Toast.LENGTH_SHORT).show() return inflater?.inflate(R.layout.fragment_home, container, false) }
}