Ожидаемое выражение и какой параметр мне нужно использовать - PullRequest
0 голосов
/ 08 апреля 2019

Существует проблема, когда я использую hide (Page_aboutus). Он сказал, что выражение ожидается, поэтому какой параметр мне нужно использовать здесь.,Кроме того, я пишу ниже код.Мой код на функции replacefragment (), чтобы показать и скрыть фрагмент. Внутри функционального блока Hide () я не знаю, как описать текущий фрагмент.

public class Page_Aboutus extends Fragment {
    View purview;
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        purview = inflater.inflate(R.layout.activity_page__aboutus, container, false);
        final RelativeLayout relate = (RelativeLayout) purview.findViewById(R.id.relate);
        final LinearLayout open_liu = (LinearLayout) purview.findViewById(R.id.open_liu);
        final LinearLayout open_zhen = (LinearLayout) purview.findViewById(R.id.open_zhen);
        final LinearLayout open_chen = (LinearLayout) purview.findViewById(R.id.open_chen);
        final LinearLayout open_wang = (LinearLayout) purview.findViewById(R.id.open_wang);
        open_liu.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Fragment fragment = new Liu();
                replaceFragment(fragment);
            }
        });
        open_zhen.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Fragment fragment = null;
                fragment = new Liuzhen();
                replaceFragment(fragment);
            }
        });
        open_chen.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Fragment fragment = null;
                fragment = new Chengyixuan();
                replaceFragment(fragment);
            }
        });
        open_wang.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Fragment fragment = null;
                fragment = new wanglei();
                replaceFragment(fragment);
            }
        });
        return purview;
    }



    public void replaceFragment(Fragment somefragment) {
        FragmentTransaction transaction = getFragmentManager().beginTransaction();
        transaction.add(R.id.fragment_container, somefragment)
                .hide(Page_Aboutus)//error here;
        transaction.addToBackStack("2");
        transaction.commit();
    }

}

1 Ответ

0 голосов
/ 09 апреля 2019

Это потому, что когда вы используете следующее:

transaction.add(R.id.fragment_container, somefragment)
           .hide(Page_Aboutus);

вы даете имя класса, но методу hide() нужен фрагмент в качестве параметра.

Если вы хотите скрыть текущий фрагмент, вы можете использовать this. Примерно так:

transaction.add(R.id.fragment_container, somefragment)
           .hide(this);
...