我试图在FrameLayout中运行一个片段:
来自activity.kt的代码:
...
frag.arguments = bundle
ft.replace(R.id.framelayout_record, frag, "feedback")
// ft.addToBackStack(null)
ft.commitNow()
...
这项工作:
View root;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
root = inflater.inflate(R.layout.fragment_employee_feedback, container, false);
return root;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
new AlertDialog.Builder(getActivity()).setMessage("Testtt").show();
}
警报正确显示
但使用此:
class TestFragment : Fragment() {
internal lateinit var root: View
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
root = inflater!!.inflate(R.layout.fragment_employee_feedback, container, false)
return root
}
override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
AlertDialog.Builder(activity).setMessage("Test Kotlin").show()
}
}
没有任何反应,只显示布局但没有警报,我无法访问布局元素