我如何将 onCreateView 写成 onViewCreated
How can i write onCreateView as onViewCreated
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.tab1, container, false);
}
我的片段有这段代码,但它不允许我使用 findViewById,所以我想将它设为 onViewCreated,但它有一些容器和选项卡,所以有人可以帮助我吗?
就像@SantanuSur 说的
You should write view.findViewById. before the return statement else the code would be unreachable
问题已解决。
onCreateView
在创建视图时被调用。在这里您可以设置视图。
onViewCreated
在创建视图后调用。在这里你可以设置值和做其他事情。
这在 api 参考 here 中有解释。
使用 getView() 或实现 onViewCreated 方法的 View 参数。它 returns 片段的根视图(由 onCreateView() 方法返回的视图)。有了这个你也可以使用 findViewById().
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
ImageView imageView = (ImageView) getView().findViewById(R.id.foo);
}
由于 getView() 仅在 onCreateView() 之后起作用,因此您不能在片段的 onCreate() 或 onCreateView() 方法中使用它。
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.tab1, container, false);
}
我的片段有这段代码,但它不允许我使用 findViewById,所以我想将它设为 onViewCreated,但它有一些容器和选项卡,所以有人可以帮助我吗?
就像@SantanuSur 说的
You should write view.findViewById. before the return statement else the code would be unreachable
问题已解决。
onCreateView
在创建视图时被调用。在这里您可以设置视图。
onViewCreated
在创建视图后调用。在这里你可以设置值和做其他事情。
这在 api 参考 here 中有解释。
使用 getView() 或实现 onViewCreated 方法的 View 参数。它 returns 片段的根视图(由 onCreateView() 方法返回的视图)。有了这个你也可以使用 findViewById().
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
ImageView imageView = (ImageView) getView().findViewById(R.id.foo);
}
由于 getView() 仅在 onCreateView() 之后起作用,因此您不能在片段的 onCreate() 或 onCreateView() 方法中使用它。