新增启用竖屏首页横向滚动设置(#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全局字体阴影默认开启可到设置-主题设置关闭
- 新增启用竖屏首页横向滚动设置,默认开启(原来的行为),如果你不想要竖屏的首页左右滑动则可以关闭此设置(#397
### 优化

View File

@ -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,

View File

@ -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",

View File

@ -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": "复制到剪贴板",

View File

@ -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<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))
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}
>
<View collapsable={false} key="nav_search" style={styles.pageStyle}>

View File

@ -26,6 +26,6 @@ export default memo(() => {
const styles = createStyle({
content: {
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 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(() => {
<IsShowBackBtn />
<IsShowExitBtn />
<IsAutoHidePlayBar />
<IsHomePageScroll />
<Theme />
<DrawerLayoutPosition />
<Language />

View File

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