当以编程方式创建一个包含视图的片段时,必须始终扩展片段类并覆盖 OnCreateView 方法。有没有另一种更简单的方法来做到这一点(比如创建一个片段并将其传递给视图 ID 或其他东西)。
谢谢
当以编程方式创建一个包含视图的片段时,必须始终扩展片段类并覆盖 OnCreateView 方法。有没有另一种更简单的方法来做到这一点(比如创建一个片段并将其传递给视图 ID 或其他东西)。
谢谢
似乎是真的,它需要创建分离的类扩展一个片段。但是您仍然可以将 viewId 作为参数传递。系统要求能够在必要时重新实例化片段。我会这样做:
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class ViewFragment extends Fragment {
public static final ViewFragment newInstance(int contentId) {
Bundle args = new Bundle();
args.putInt("contentId", contentId);
ViewFragment fragment = new ViewFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Bundle args = getArguments();
int contentId = args.getInt("contentId");
return inflater.inflate(contentId, container, false);
}
}