2017-06-08 125 views
0

我想知道是否有方法從片段訪問tabLayout。Android從片段獲取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; 
      } 
     }); 
    } 

我想要做的就是能夠在ClickListener中的片段中啓用它們。

我不知道我應該聲明tabLayout靜態並訪問它,或者如果有這樣做的正確方法。

我很抱歉,如果我沒有解釋它是正確的 - 仍然有點新的Android。

回答

1

使用接口片段和活性之間進行通信,用於樣品

創建界面。

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; 
    } 
} 

,然後在裏面onClickListenner您的片段,你可以調用

mListener.onClickToEnableTab();