1.app:layout_scrollFlags atributo introdução
Ao introduzir o uso de AppBarLayout e CollapsingToolbarLayout anteriormente, a propriedade app: layout_scrollFlags foi usada. Na verdade, este atributo de sinalizador de rolagem vem de AppBarLayout, que é usado para definir o comportamento de rolagem específico de controles de nível inferior, como se deve rolar primeiro ou voltar, se rolar pela metade ou todos, se rolar automaticamente ou manualmente, e em breve.
2. Cenários de diferentes comportamentos de rolagem
- A rolagem de AppBarLayout depende da rolagem do corpo da página.Correspondente ao corpo da página, AppBarLayout pode ser chamado de cabeçalho da página. Como uma página é dividida em duas partes, o cabeçalho e o corpo principal, há um problema de quem rola primeiro e quem rola para trás.
- A altura dentro do AppBarLayout também pode mudar, por exemplo, ele aninha CollapsingToolbarLayout. Uma vez que a altura do AppBarLayout muda, deve-se distinguir entre rolar pela metade ou rolar tudo.
- O AppBarLayout foi puxado por um tempo e ainda não foi puxado. Nesse momento, quando você libera o dedo, ele geralmente para no lugar. Mas os freios na metade do caminho são feios, então você precisa decidir se continua a parar, ou continua a encolher para cima, ou continua a expandir para baixo.
3. Introdução aos cinco sinais de rolagem
- scroll: Este sinal indica que a cabeça e o corpo principal rolam juntos.
- enterAlways: Este sinal indica que a cabeça e o corpo principal rolam juntos primeiro. Depois que a cabeça rola no lugar, o corpo principal continua a rolar para cima ou para baixo.
- exitUntilCollapsed: Este sinal garante que pelo menos a barra de ferramentas minimizada possa ser vista na página, e a barra de ferramentas não ficará completamente oculta. O comportamento específico de rolagem é dividido em dois tipos, rolando para cima e rolando para baixo. Rolar para cima significa que a cabeça primeiro encolhe e rola para a altura mínima de dobra; em seguida, a cabeça é fixada e o corpo principal continua a rolar para cima; e rola para baixo significa que a cabeça está fixa, o corpo principal primeiro rola para baixo, até que o corpo principal seja totalmente puxado para fora; em seguida, a cabeça é estendida para baixo.
- enterAlwaysCollapsed: este sinalizador é geralmente usado junto com enterAlways. A diferença entre enterAlways e enterAlways é que há uma operação de dobramento, enquanto o único enterAlways não é dobrado. O comportamento específico de rolagem também é dividido em dois tipos: rolagem para cima e rolagem para baixo. Enrolar significa que a cabeça primeiro encolhe para cima e rola para a altura mínima de dobra; em seguida, a cabeça e o corpo principal rolam juntos e depois que a cabeça rola para dentro lugar, o corpo principal Continue subindo. E rolar para baixo significa que a cabeça e o corpo principal rolam juntos primeiro, até que a altura mínima da cabeça seja dobrada; então, o corpo principal rola para baixo e a cabeça continua a se desdobrar após ser rolada no lugar.
- snap: Quando o dedo do usuário é liberado, o sistema julga por conta própria se rola tudo para cima ou se expande para baixo.
A diferença entre 4,5 sinais de rolagem
Valor da bandeira de rolagem | Descrição |
rolagem | Rolagem simples e simples, nada complicado |
enterAlways | A diferença entre este logotipo e o scroll é que ele permite que a cabeça cubra o corpo principal, enquanto o scroll não cobre |
exitUntilCollapsed | Depois de definir este sinalizador, você sempre verá uma barra de ferramentas na página |
enterAlwaysCollapsed | A diferença entre este sinalizador e enterAlways é que ele suporta o efeito de dobra definido por layout_collapseMode |
foto | Depois de definir este sinalizador, sempre que o usuário soltar o gesto, o sistema determinará automaticamente se encolher para cima ou expandir para baixo |