Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 安卓从一个片段中获得表格布局_Java_Android_Android Fragments_Android Tablayout - Fatal编程技术网

Java 安卓从一个片段中获得表格布局

Java 安卓从一个片段中获得表格布局,java,android,android-fragments,android-tablayout,Java,Android,Android Fragments,Android Tablayout,我想知道是否有一种方法可以从片段中访问tabLayout 我在下面声明我的TabLayout并禁用所有选项卡 TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.setupWithViewPager(mViewPager); LinearLayout tabStrip = ((LinearLayout)tabLayout.getChildAt(0)); for(int i = 0; i < ta

我想知道是否有一种方法可以从片段中访问tabLayout

我在下面声明我的TabLayout并禁用所有选项卡

TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(mViewPager);

LinearLayout tabStrip = ((LinearLayout)tabLayout.getChildAt(0));
    for(int i = 0; i < tabStrip.getChildCount(); i++) {
       tabStrip.getChildAt(i).setOnTouchListener(new View.OnTouchListener() {
           @Override
           public boolean onTouch(View v, MotionEvent event) {
                return true;
           }
       });
    }
TabLayout TabLayout=(TabLayout)findViewById(R.id.tabs);
tabLayout.setupWithViewPager(mviewpage);
LinearLayout选项卡strip=((LinearLayout)tabLayout.getChildAt(0));
对于(int i=0;i
我想做的是能够在ClickListener中的片段中启用它们

我不确定我是否应该声明tabLayout static并像那样访问它,或者是否有正确的方法这样做


如果解释不正确,我深表歉意-对Android来说还是有点陌生。

将tablayout声明为静态变量是处理该场景的一种糟糕方式。您可以使用接口来实现这一点。请查看关于如何在片段和活动之间通信的官方链接,它非常简单。

将tablayout声明为静态变量是处理该场景的一种糟糕方法。您可以使用接口来实现这一点。请查看关于如何在片段和活动之间通信的官方链接,它非常简单。

使用接口在片段和活动之间进行通信,例如

创建接口

public interface OnFragmentInteractionListener {
    // TODO: Update argument type and name
    void onClickToEnableTab();
}
在活动中实施它。执行代码以启用选项卡

public class Activity implement OnFragmentInteractionListener{
    @Override
    public void onClickToEnableTab() {
       // TODO : Enable you tab layout
    }
}
零碎

public class YourFragment extends Fragment {
private OnFragmentInteractionListener mListener;

    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        if (context instanceof OnFragmentInteractionListener) {
            mListener = (OnFragmentInteractionListener) context;
        } else {
            throw new RuntimeException(context.toString()
                + " must implement OnFragmentInteractionListener");
        }
    }

    @Override
    public void onDetach() {
        super.onDetach();
        mListener = null;
    }  
}
然后,在OnClickListener内的片段中,您可以调用

mListener.onClickToEnableTab();

使用接口在片段和活动之间进行通信,例如

创建接口

public interface OnFragmentInteractionListener {
    // TODO: Update argument type and name
    void onClickToEnableTab();
}
在活动中实施它。执行代码以启用选项卡

public class Activity implement OnFragmentInteractionListener{
    @Override
    public void onClickToEnableTab() {
       // TODO : Enable you tab layout
    }
}
零碎

public class YourFragment extends Fragment {
private OnFragmentInteractionListener mListener;

    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        if (context instanceof OnFragmentInteractionListener) {
            mListener = (OnFragmentInteractionListener) context;
        } else {
            throw new RuntimeException(context.toString()
                + " must implement OnFragmentInteractionListener");
        }
    }

    @Override
    public void onDetach() {
        super.onDetach();
        mListener = null;
    }  
}
然后,在OnClickListener内的片段中,您可以调用

mListener.onClickToEnableTab();