Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat/fix bug/scroll category #4

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

phamdatt
Copy link
Collaborator

@phamdatt phamdatt commented Jul 1, 2022

  • Done fixed switch highlighted category too early when scroll up
  • Done fixed last category is not highlighted when its content is too short

return;
} else if (y > categoryPositions[categoryPositions.length - 1]) {
}
if (
Copy link
Collaborator Author

@phamdatt phamdatt Jul 1, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Trong trường hợp này, nếu số lượng mặt hàng trong danh sách cuối cùng quá ít, tôi cần kích hoạt danh sách cuối cùng sớm bằng cách nếu giá trị y lớn hơn tổng phần tử đứng trước + một nửa của phần tử đứng sau thì set index là index cuối cùng của mảng

setActiveCategory(0);
}

if (
Copy link
Collaborator Author

@phamdatt phamdatt Jul 1, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bởi vì sự kiện cuộn là liên tục và giá trị của nó là tương đối, tôi cần chỉ định một khoảng cách cụ thể hay nói cách khác là một công thức tính toán, tôi đã tính toán công thức sau để kích hoạt phần tử hiện tại, tôi cần giá trị y (giá trị khi kích hoạt cuộn) phải lớn hơn phần tử trước và nhỏ hơn phần tử sau, điều gì sẽ xảy ra nếu tôi chỉ kiểm tra giá trị y lớn hơn phần tử hiện tại ? . Khi kích hoạt y tăng dần thì không có vấn đề gì nhưng khi giảm giá trị y, bây giờ chỉ cần lớn hơn dù chỉ nhỏ nhất là chỉ số sẽ hoạt động sớm nên mình cần xác định khoảng cách cụ thể sau đó mới hoạt động.

@@ -47,10 +45,32 @@ export default () => {
const handleScroll = (event: any) => {
const y = event.nativeEvent.contentOffset.y;
categoryPositions.forEach((position, index) => {
if (y >= position && y < categoryPositions[index + 1]) {
if (y <= 0) {
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Khi giá trị cuộn bé hơn hoặc bằng 0 tôi sẽ không active index , lúc này phần tử trên tabbar sẽ không được hightlight

if (y <= 0) {
setActiveCategory(-1);
}
if (
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bởi vì tôi xác định vị trị của phẩn tử trước và sau phần tử hiện rồi mới active index, nhưng nếu index == 0 thì là phần tử cuối tôi cần một điều kiện khác để active index

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant