diff --git a/publish/changeLog.md b/publish/changeLog.md index 4c72aae..91ca2ad 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -6,6 +6,7 @@ - 新增歌曲标签编辑功能,允许编辑本地源且文件歌曲存在的歌曲标签信息 - 新增动态背景,默认关闭,启用后将使用当前歌曲封面做APP背景 - 新增APP全局字体阴影,默认开启,可到设置-主题设置关闭 +- 新增启用竖屏首页横向滚动设置,默认开启(原来的行为),如果你不想要竖屏的首页左右滑动则可以关闭此设置(#397) ### 优化 diff --git a/src/config/defaultSetting.ts b/src/config/defaultSetting.ts index 1334e8e..0fb7acb 100644 --- a/src/config/defaultSetting.ts +++ b/src/config/defaultSetting.ts @@ -8,6 +8,7 @@ const defaultSetting: LX.AppSetting = { 'common.isAgreePact': false, 'common.autoHidePlayBar': true, 'common.drawerLayoutPosition': 'left', + 'common.homePageScroll': true, 'common.showBackBtn': false, 'common.showExitBtn': true, diff --git a/src/lang/en_us.json b/src/lang/en_us.json index 03a24a7..0f43095 100644 --- a/src/lang/en_us.json +++ b/src/lang/en_us.json @@ -240,6 +240,7 @@ "setting_basic_font_size_80": "smaller", "setting_basic_font_size_90": "Small", "setting_basic_font_size_preview": "LX Music Font Size Preview", + "setting_basic_home_page_scroll": "Enable horizontal scrolling on the vertical home page", "setting_basic_lang": "Language", "setting_basic_share_type": "Share", "setting_basic_share_type_clipboard": "copy to clipboard", diff --git a/src/lang/zh_cn.json b/src/lang/zh_cn.json index ea1fb8b..526a4b8 100644 --- a/src/lang/zh_cn.json +++ b/src/lang/zh_cn.json @@ -240,6 +240,7 @@ "setting_basic_font_size_80": "较小", "setting_basic_font_size_90": "小", "setting_basic_font_size_preview": "LX Music 字体大小预览", + "setting_basic_home_page_scroll": "启用竖屏首页横向滚动", "setting_basic_lang": "语言", "setting_basic_share_type": "分享方式", "setting_basic_share_type_clipboard": "复制到剪贴板", diff --git a/src/screens/Home/Vertical/Main.tsx b/src/screens/Home/Vertical/Main.tsx index 4981994..d5b14ca 100644 --- a/src/screens/Home/Vertical/Main.tsx +++ b/src/screens/Home/Vertical/Main.tsx @@ -9,6 +9,7 @@ import commonState, { type InitState as CommonState } from '@/store/common/state import { createStyle } from '@/utils/tools' import PagerView, { type PageScrollStateChangedNativeEvent, type PagerViewOnPageSelectedEvent } from 'react-native-pager-view' import { setNavActiveId } from '@/core/common' +import settingState from '@/store/setting/state' const hideKeys = [ 'list.isShowAlbumName', @@ -259,10 +260,16 @@ const Main = () => { activeIndexRef.current = index pagerViewRef.current?.setPageWithoutAnimation(index) } + const handleConfigUpdate = (keys: Array, setting: Partial) => { + if (!keys.includes('common.homePageScroll')) return + pagerViewRef.current?.setScrollEnabled(setting['common.homePageScroll']!) + } // window.requestAnimationFrame(() => pagerViewRef.current && pagerViewRef.current.setPage(activeIndexRef.current)) global.state_event.on('navActiveIdUpdated', handleUpdate) + global.state_event.on('configUpdated', handleConfigUpdate) return () => { global.state_event.off('navActiveIdUpdated', handleUpdate) + global.state_event.off('configUpdated', handleConfigUpdate) } }, []) @@ -274,6 +281,7 @@ const Main = () => { offscreenPageLimit={1} onPageSelected={onPageSelected} onPageScrollStateChanged={onPageScrollStateChanged} + scrollEnabled={settingState.setting['common.homePageScroll']} style={styles.pagerView} > diff --git a/src/screens/Home/Views/Setting/settings/Basic/IsAutoHidePlayBar.tsx b/src/screens/Home/Views/Setting/settings/Basic/IsAutoHidePlayBar.tsx index 7b90b02..863a80e 100644 --- a/src/screens/Home/Views/Setting/settings/Basic/IsAutoHidePlayBar.tsx +++ b/src/screens/Home/Views/Setting/settings/Basic/IsAutoHidePlayBar.tsx @@ -26,6 +26,6 @@ export default memo(() => { const styles = createStyle({ content: { marginTop: 5, - marginBottom: 15, + // marginBottom: 15, }, }) diff --git a/src/screens/Home/Views/Setting/settings/Basic/IsHomePageScroll.tsx b/src/screens/Home/Views/Setting/settings/Basic/IsHomePageScroll.tsx new file mode 100644 index 0000000..78859e9 --- /dev/null +++ b/src/screens/Home/Views/Setting/settings/Basic/IsHomePageScroll.tsx @@ -0,0 +1,31 @@ +import { updateSetting } from '@/core/common' +import { useI18n } from '@/lang' +import { createStyle } from '@/utils/tools' +import { memo } from 'react' +import { View } from 'react-native' +import { useSettingValue } from '@/store/setting/hook' + + +import CheckBoxItem from '../../components/CheckBoxItem' + +export default memo(() => { + const t = useI18n() + const homePageScroll = useSettingValue('common.homePageScroll') + const setHomePageScroll = (homePageScroll: boolean) => { + updateSetting({ 'common.homePageScroll': homePageScroll }) + } + + return ( + + + + ) +}) + + +const styles = createStyle({ + content: { + marginTop: 5, + marginBottom: 15, + }, +}) diff --git a/src/screens/Home/Views/Setting/settings/Basic/index.tsx b/src/screens/Home/Views/Setting/settings/Basic/index.tsx index f4e152f..c086d6f 100644 --- a/src/screens/Home/Views/Setting/settings/Basic/index.tsx +++ b/src/screens/Home/Views/Setting/settings/Basic/index.tsx @@ -9,6 +9,7 @@ import FontSize from './FontSize' import ShareType from './ShareType' import IsStartupAutoPlay from './IsStartupAutoPlay' import IsAutoHidePlayBar from './IsAutoHidePlayBar' +import IsHomePageScroll from './IsHomePageScroll' import IsShowBackBtn from './IsShowBackBtn' import IsShowExitBtn from './IsShowExitBtn' import DrawerLayoutPosition from './DrawerLayoutPosition' @@ -24,6 +25,7 @@ export default memo(() => { + diff --git a/src/types/app_setting.d.ts b/src/types/app_setting.d.ts index 4acb4d9..3364c6b 100644 --- a/src/types/app_setting.d.ts +++ b/src/types/app_setting.d.ts @@ -46,6 +46,11 @@ declare global { */ 'common.drawerLayoutPosition': 'left' | 'right' + /** + * 启用首页滑动 + */ + 'common.homePageScroll': boolean + /** * 是否显示返回按钮 */