有没有办法在片段范围内通过 id 查找视图?我正在使用一系列片段来呈现一个专门的列表。片段是从布局加载的,因此它们的小部件都具有相同的 id。
我想我可以找到一种在创建期间(或之后)为每个小部件提供自定义 ID 的方法。但是,如果我能以某种方式将 findViewById 限制在片段的范围内,那就更好了。
有没有办法在片段范围内通过 id 查找视图?我正在使用一系列片段来呈现一个专门的列表。片段是从布局加载的,因此它们的小部件都具有相同的 id。
我想我可以找到一种在创建期间(或之后)为每个小部件提供自定义 ID 的方法。但是,如果我能以某种方式将 findViewById 限制在片段的范围内,那就更好了。
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;
}
从片段内部:
getView().findViewById(R.id.your_view);
从封闭的活动:
getFragmentManager().findFragmentByTag("YourFragmentTag").getView().findViewById(R.id.your_view);
或者
getFragmentManager().findFragmentById(R.id.your_fragment).getView().findViewById(R.id.your_view);
你可以这样做getView().findViewById()
是的,有办法,可以通过rootView找到。首先找到你的片段的rootView,rootView=getView();
然后使用rootView.findViewById(...);
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootview=null;
rootview=inflater.inflate(R.layout.fragment_web_view, container, false);
ListView lv = (ListView)rootview.findViewById(android.R.id.list);
return rootview;
// Inflate the layout for this fragment
//return inflater.inflate(R.layout.fragment_web_view, container, false);
}