家长 Activity 布局
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".LockerCodeActivity" >
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:id="@+id/ctrlActivityIndicator"
android:indeterminateOnly="true"
android:keepScreenOn="false"
/>
android:id="@+id/tv_results"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="" />
在父 Activity 的onCreate函数中填充片段
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
Fragment scannerFragment = new ScanFragment();
fragmentTransaction.add(R.id.fragment_container, scannerFragment);
fragmentTransaction.commit();
到目前为止效果很好...现在如何隐藏进度条?
这就是我尝试过的
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_scan, container, false);
ProgressBar progressBar = (ProgressBar) view.findViewById(R.id.ctrlActivityIndicator);
progressBar.setVisibility(View.INVISIBLE);
return view;
}
我得到一个空指针异常
最佳答案
由于您需要 Activity 的 View ,因此将需要执行以下操作:ProgressBar progressBar = (ProgressBar) getActivity().findViewById(R.id.ctrlActivityIndicator);
您调用getActivity()来获取Activity实例,然后像往常一样使用findViewById()(条件是R.id.ctrlActivityIndicator是Activity布局的一部分,则不会获得NPE)。