新增启用竖屏首页横向滚动设置(#397)

This commit is contained in:
lyswhut 2023-12-23 14:49:13 +08:00
parent eef6a189d8
commit 651c011500
9 changed files with 51 additions and 1 deletions

View File

@ -6,6 +6,7 @@
- 新增歌曲标签编辑功能,允许编辑本地源且文件歌曲存在的歌曲标签信息 - 新增歌曲标签编辑功能,允许编辑本地源且文件歌曲存在的歌曲标签信息
- 新增动态背景默认关闭启用后将使用当前歌曲封面做APP背景 - 新增动态背景默认关闭启用后将使用当前歌曲封面做APP背景
- 新增APP全局字体阴影默认开启可到设置-主题设置关闭 - 新增APP全局字体阴影默认开启可到设置-主题设置关闭
- 新增启用竖屏首页横向滚动设置,默认开启(原来的行为),如果你不想要竖屏的首页左右滑动则可以关闭此设置(#397
### 优化 ### 优化

View File

@ -8,6 +8,7 @@ const defaultSetting: LX.AppSetting = {
'common.isAgreePact': false, 'common.isAgreePact': false,
'common.autoHidePlayBar': true, 'common.autoHidePlayBar': true,
'common.drawerLayoutPosition': 'left', 'common.drawerLayoutPosition': 'left',
'common.homePageScroll': true,
'common.showBackBtn': false, 'common.showBackBtn': false,
'common.showExitBtn': true, 'common.showExitBtn': true,

View File

@ -240,6 +240,7 @@
"setting_basic_font_size_80": "smaller", "setting_basic_font_size_80": "smaller",
"setting_basic_font_size_90": "Small", "setting_basic_font_size_90": "Small",
"setting_basic_font_size_preview": "LX Music Font Size Preview", "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_lang": "Language",
"setting_basic_share_type": "Share", "setting_basic_share_type": "Share",
"setting_basic_share_type_clipboard": "copy to clipboard", "setting_basic_share_type_clipboard": "copy to clipboard",

View File

@ -240,6 +240,7 @@
"setting_basic_font_size_80": "较小", "setting_basic_font_size_80": "较小",
"setting_basic_font_size_90": "小", "setting_basic_font_size_90": "小",
"setting_basic_font_size_preview": "LX Music 字体大小预览", "setting_basic_font_size_preview": "LX Music 字体大小预览",
"setting_basic_home_page_scroll": "启用竖屏首页横向滚动",
"setting_basic_lang": "语言", "setting_basic_lang": "语言",
"setting_basic_share_type": "分享方式", "setting_basic_share_type": "分享方式",
"setting_basic_share_type_clipboard": "复制到剪贴板", "setting_basic_share_type_clipboard": "复制到剪贴板",

View File

@ -9,6 +9,7 @@ import commonState, { type InitState as CommonState } from '@/store/common/state
import { createStyle } from '@/utils/tools' import { createStyle } from '@/utils/tools'
import PagerView, { type PageScrollStateChangedNativeEvent, type PagerViewOnPageSelectedEvent } from 'react-native-pager-view' import PagerView, { type PageScrollStateChangedNativeEvent, type PagerViewOnPageSelectedEvent } from 'react-native-pager-view'
import { setNavActiveId } from '@/core/common' import { setNavActiveId } from '@/core/common'
import settingState from '@/store/setting/state'
const hideKeys = [ const hideKeys = [
'list.isShowAlbumName', 'list.isShowAlbumName',
@ -259,10 +260,16 @@ const Main = () => {
activeIndexRef.current = index activeIndexRef.current = index
pagerViewRef.current?.setPageWithoutAnimation(index) pagerViewRef.current?.setPageWithoutAnimation(index)
} }
const handleConfigUpdate = (keys: Array<keyof LX.AppSetting>, setting: Partial<LX.AppSetting>) => {
if (!keys.includes('common.homePageScroll')) return
pagerViewRef.current?.setScrollEnabled(setting['common.homePageScroll']!)
}
// window.requestAnimationFrame(() => pagerViewRef.current && pagerViewRef.current.setPage(activeIndexRef.current)) // window.requestAnimationFrame(() => pagerViewRef.current && pagerViewRef.current.setPage(activeIndexRef.current))
global.state_event.on('navActiveIdUpdated', handleUpdate) global.state_event.on('navActiveIdUpdated', handleUpdate)
global.state_event.on('configUpdated', handleConfigUpdate)
return () => { return () => {
global.state_event.off('navActiveIdUpdated', handleUpdate) global.state_event.off('navActiveIdUpdated', handleUpdate)
global.state_event.off('configUpdated', handleConfigUpdate)
} }
}, []) }, [])
@ -274,6 +281,7 @@ const Main = () => {
offscreenPageLimit={1} offscreenPageLimit={1}
onPageSelected={onPageSelected} onPageSelected={onPageSelected}
onPageScrollStateChanged={onPageScrollStateChanged} onPageScrollStateChanged={onPageScrollStateChanged}
scrollEnabled={settingState.setting['common.homePageScroll']}
style={styles.pagerView} style={styles.pagerView}
> >
<View collapsable={false} key="nav_search" style={styles.pageStyle}> <View collapsable={false} key="nav_search" style={styles.pageStyle}>

View File

@ -26,6 +26,6 @@ export default memo(() => {
const styles = createStyle({ const styles = createStyle({
content: { content: {
marginTop: 5, marginTop: 5,
marginBottom: 15, // marginBottom: 15,
}, },
}) })

View File

@ -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 (
<View style={styles.content}>
<CheckBoxItem check={homePageScroll} label={t('setting_basic_home_page_scroll')} onChange={setHomePageScroll} />
</View>
)
})
const styles = createStyle({
content: {
marginTop: 5,
marginBottom: 15,
},
})

View File

@ -9,6 +9,7 @@ import FontSize from './FontSize'
import ShareType from './ShareType' import ShareType from './ShareType'
import IsStartupAutoPlay from './IsStartupAutoPlay' import IsStartupAutoPlay from './IsStartupAutoPlay'
import IsAutoHidePlayBar from './IsAutoHidePlayBar' import IsAutoHidePlayBar from './IsAutoHidePlayBar'
import IsHomePageScroll from './IsHomePageScroll'
import IsShowBackBtn from './IsShowBackBtn' import IsShowBackBtn from './IsShowBackBtn'
import IsShowExitBtn from './IsShowExitBtn' import IsShowExitBtn from './IsShowExitBtn'
import DrawerLayoutPosition from './DrawerLayoutPosition' import DrawerLayoutPosition from './DrawerLayoutPosition'
@ -24,6 +25,7 @@ export default memo(() => {
<IsShowBackBtn /> <IsShowBackBtn />
<IsShowExitBtn /> <IsShowExitBtn />
<IsAutoHidePlayBar /> <IsAutoHidePlayBar />
<IsHomePageScroll />
<Theme /> <Theme />
<DrawerLayoutPosition /> <DrawerLayoutPosition />
<Language /> <Language />

View File

@ -46,6 +46,11 @@ declare global {
*/ */
'common.drawerLayoutPosition': 'left' | 'right' 'common.drawerLayoutPosition': 'left' | 'right'
/**
*
*/
'common.homePageScroll': boolean
/** /**
* *
*/ */