片段内的findViewById

Per*_*man 24 android android-fragments findviewbyid

有没有办法在片段范围内通过id查找视图?我正在使用一系列片段来呈现专门的列表.片段从布局加载,因此它们的小部件都具有相同的ID.

我想我可以找到一种方法,在创建期间(或之后)为每个小部件提供自定义ID.但是,如果我能以某种方式将findViewById限制在片段的范围内,那将会更好.

chr*_*lip 57

private View myFragmentView;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
{
    myFragmentView = inflater.inflate(R.layout.myLayoutId, container, false);
    myView = myFragmentView.findViewById(R.id.myIdTag)

    return myFragmentView;
}
Run Code Online (Sandbox Code Playgroud)


Mic*_*ley 23

从碎片内部:

getView().findViewById(R.id.your_view);
Run Code Online (Sandbox Code Playgroud)

从封闭的活动:

getFragmentManager().findFragmentByTag("YourFragmentTag").getView().findViewById(R.id.your_view);
Run Code Online (Sandbox Code Playgroud)

要么

getFragmentManager().findFragmentById(R.id.your_fragment).getView().findViewById(R.id.your_view);
Run Code Online (Sandbox Code Playgroud)

  • 在片段调用`onCreateView()`之前,`getView()`只是null.此时,使用`findViewById()`找不到视图,因为没有创建视图. (3认同)
  • 有时getView()为null,那么你会做什么? (2认同)

500*_*865 6

你可以做到 getView().findViewById()