Как преобразовать некоторые функции из действия во фрагмент? - PullRequest
0 голосов
/ 13 февраля 2020

Я пытаюсь преобразовать свою деятельность во фрагмент, но у меня возникают некоторые проблемы. Макет в HomeFragment является нулевым, поэтому он имеет вид sh ...

My HomeActivity:

public class HomeActivity extends AppCompatActivity  {
Context mContext;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);

    //the layout on which you are working
    ConstraintLayout layout = (ConstraintLayout) findViewById(R.id.homeContainer);

    final ConstraintLayout layout2 = (ConstraintLayout) findViewById(R.id.homeContainer);
    ViewTreeObserver vto = layout2.getViewTreeObserver();
    vto.addOnGlobalLayoutListener (new ViewTreeObserver.OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            layout.getViewTreeObserver().removeOnGlobalLayoutListener(this);
...  

My HomeFragment:

public class HomeFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view =  inflater.inflate(R.layout.activity_home, container, false);

        //the layout on which you are working
        ConstraintLayout layout = (ConstraintLayout) getActivity().findViewById(R.id.homeContainer);

        final ConstraintLayout layout2 = (ConstraintLayout) getActivity().findViewById(R.id.homeContainer);
        ViewTreeObserver vto = layout2.getViewTreeObserver();
        vto.addOnGlobalLayoutListener (new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                 layout.getViewTreeObserver().removeOnGlobalLayoutListener(this);
...

Есть идеи?

1 Ответ

1 голос
/ 13 февраля 2020

Вы должны заменить ваши getActivity() звонки на ваше завышенное представление.

До

ConstraintLayout layout = (ConstraintLayout) getActivity().findViewById(R.id.homeContainer);

После

ConstraintLayout layout = (ConstraintLayout) view.findViewById(R.id.homeContainer);
...