gpt4 book ai didi

java - Android 从fragment中获取tabLayout

转载 作者:行者123 更新时间:2023-12-01 20:22:29 25 4
gpt4 key购买 nike

我想知道是否有办法从 fragment 访问 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 内的 fragment 中启用它们。

我不确定是否应该将 tabLayout 声明为静态并像这样访问它,或者是否有正确的方法。

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

最佳答案

使用接口(interface)在 fragment 和 Activity 之间进行通信,例如

创建界面。

public interface OnFragmentInteractionListener {
// TODO: Update argument type and name
void onClickToEnableTab();
}

在 Activity 中实现它。执行代码以启用您的选项卡

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

在 fragment

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 内的 fragment 中,您可以调用

mListener.onClickToEnableTab();

关于java - Android 从fragment中获取tabLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44426204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com