gpt4 book ai didi

android - 在 [Scrollable Tabs + Swipe] Navigation-Android 中滚动时如何更新 Fragment?

转载 作者:行者123 更新时间:2023-11-29 21:36:56 24 4
gpt4 key购买 nike

所以我使用可滚动标签 + 滑动导航在不同的标签屏幕上播放不同的音乐文件。

这是我为自动生成的默认 fragment 修改的 OnCreateView

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main_dummy,
container, false);
TextView dummyTextView = (TextView) rootView
.findViewById(R.id.sT);
dummyTextView.setText(Integer.toString(getArguments().getInt(
ARG_SECTION_NUMBER)));
AssetFileDescriptor fda;
MediaPlayer amp = new MediaPlayer();

try {
fda = rootView.getContext().getAssets().openFd("songname.mp3");
amp.reset();
amp.setDataSource(fda.getFileDescriptor());
amp.prepare();
amp.start();

} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return rootView;

}这里我只有一个显示屏幕索引号的 TextView 。假设第一个屏幕显示“1”,第二个屏幕在 textView 中显示“2”……等等。

我也想要每个屏幕都有一个 imageView,但我可以做到这一点。

问题在于播放音频。

现在它只是在屏幕启动时播放一首歌曲。假设歌曲正在播放。

如果用户向左或向右滑动,如何改变正在播放的歌曲?我需要停止这个,根据索引号 (ARG_SECTION_NUMBER) 更改“setDataSource”...然后再次播放。

但是如何知道用户是否滑动并更改了打开的选项卡? (无论是通过滚动标签还是滑动)

我要在什么用户事件上进行这些更改?我可以设置一些默认停止播放歌曲并在屏幕变化时切换到下一首的东西吗...?

我最终打算添加一个播放/暂停按钮。即便如此,我还是想用屏幕更改资源..因此这个问题

感谢!

最佳答案

ViewPager 有一个 setOnPageChangeListener() 方法,允许您设置一个对象,当新页面成为用户正在查看的页面时,该对象会获得回调。

这样的事情会让你走上正确的道路:

mPageChangeListener = new OnPageChangeListener() {

@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub

}

@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub

}

@Override
public void onPageSelected(int pos) {
playSoundForPage(pos);
}

};
yourViewPager.setOnPageChangeListener(mPageChangeListener);

但是,您必须将它放在拥有您的 ViewPager( Activity 或 fragment )而不是您的适配器的任何地方。

或者你可以使用这个:

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) { }
else { }
}

关于android - 在 [Scrollable Tabs + Swipe] Navigation-Android 中滚动时如何更新 Fragment?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18222956/

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