Edgesforextendedlayout Scrollview Can Host


31 dias do Android: Day 19ScrollViews Hoje iriam continuar 31 dias do Android, começando a falar sobre duas maneiras diferentes de exibir mais informações do que caberá na tela: 160 ScrollView s e ListView s.160 Hoje nos focaremos no ScrollView s E amanhã será ListView s.160 Devido à forma como esses dois View s funcionam, você não quer combinar os dois.160 Uma vez que eu passei por ambos fora amanhã, falarei sobre por que você deve mantê-los separados.160 Você Pode baixar o código de exemplo que começará hoje com aqui. O ScrollView permite que você crie telas que se assemelham muito a uma página da web.160160160 A adição de uma exibição de rolagem a um layout permite que você perca o usuário rolar qualquer coisa dentro do ScrollView verticalmente e horizontalmente.160 Se você executar seu aplicativo agora, você verá lá Não há necessidade de rolagem: 160 No entanto, se você adicionasse uma grande quantidade de texto na parte inferior, isso pode mudar.160 Abra seu arquivo resvaluesstrings. xml e adicione um novo String.160 Diga-o o texto grande e coloque um texto muito grande String in there.160 Algo assim: para fazer sua string adequadamente longa, recomenda-me obter alguns parágrafos do Bacon Ipsum .160 Agora abra o arquivo de layout reslayoutmain. xml.160 Você precisa adicionar um novo TextView abaixo do último botão E ajuste-o para o seu valor de texto grande.160 Quando você estiver pronto, você deveria ter algo como isto: agora, quando você executa seu aplicativo, você notará que o texto sai da tela e você não tem como vê-lo: Heres onde você pode usar o ScrollView .160 Seu primeiro instinto Ct pode ser para voltar ao seu layout e alterar o LinearLayout na raiz para um ScrollView .160 Se você fizer isso, você será saudado por este erro desagradável: Causado por: java. lang. IllegalStateException: ScrollView pode hospedar apenas uma criança direta Isso significa que você não pode ter mais de uma visualização como filho do ScrollView .160 Uma vez que seu layout possui alguns TextViews. Um EditText. E alguns botões. Você não pode apenas substituir a raiz LinearLayout como essa.160 O que você pode fazer, porém, é envolver o LinearLayout dentro de um ScrollView .160 Isso permite que você tenha um filho único abaixo do ScrollView, mas tenha várias crianças abaixo disso.160 Quando você estiver pronto, seu O XML deve ser assim: agora, quando você executar seu aplicativo, você poderá tocar na tela e arrastrar para cima: observe que quando você se desloca, você verá uma barra de rolagem no lado direito da tela.160 Você notará que você não pode se deslocar para a direita Ou esquerda.160 Isso ocorre porque o ScrollView apenas suporta a rolagem vertical.160 O elemento HorizontalScrollView permitirá que você se deslize horizontalmente.160 É possível colocar um HorizontalScrollView como o filho do VerticalScrollView, que permitirá que você se deslize nas duas direções, No entanto, o Google diz que esta é uma má idéia .160 Em vez disso, eles sugerem que você substitua ScrollView e crie seu próprio controle capaz de rolagem vertical e horizontal.160 Isso é totalmente possível e se você pesquisar Na Internet, você encontrará vários exemplos de pessoas fazendo isso e até mesmo o código-fonte para suas implementações.160 Como eu gosto de fazer, lembro-lhe que lembre-se que só porque você pode fazê-lo, não significa que você deveria.160 A experiência quando você Tem que rolar em várias direções em um dispositivo de tela pequena não é muito bom (sim o WebView e o navegador lhe dão essa capacidade e o Id argumenta se gosto às vezes) .160 Existem vários atributos diferentes que você pode usar em um ScrollView Incluindo aqueles que permitem que você altere a forma como as barras de rolagem se parecem, quanto tempo eles estão visíveis, se eles estiverem visíveis, etc.160 Além disso, você pode controlar a rolagem de seu ScrollView, programaticamente, se desejar.160 Por exemplo, se você quisesse adicionar um O botão que desencadeia o ScrollView para rolar para o topo, isso é possível fazendo o seguinte: Aqui você está recebendo uma referência ao seu ScrollView e dizendo para rolar para o canto superior esquerdo.160 Outra coisa importante sobre o ScrollV É que ele não precisa ser o elemento raiz do seu layout.160 Se você quisesse ter um cabeçalho de texto na parte superior da tela que sua visão de rolagem não abrangeria, você poderia simplesmente colocar o ScrollView como filho da raiz LinearLayout .160 Heres seu layout XML, onde o ScrollView está apenas envolvendo o Texttext Bigtext: você deve estar pronto para usar o ScrollView s em suas próprias aplicações agora.160 Amanhã, passe o outro método para exibir muita informação em uma única página, ListView s.160 Compartilhar PostI precisa definir restrições no uiscrollview no viewcontroller contendo barra de navegação e tabbar. I colocou um uiview (contentView) dentro do scrollview que é da mesma altura que o scrollview. These são as coisas que eu configurei de forma curiosa, configure 4 Restrições para scrollview (superior, inferior, esquerda, direita) com restrições à margem desmarcada, que é 0 para todas as bordas. Defina 4 restrições para uiview (contentView) dentro de scrollview (superior, inferior, esquerda, direita) com restrições à margem desmarcada, que é 0 para todas as bordas. Defina igual largura e igual altura para scrollview e a saída UIView (contentView) está sendo exibida como essa uiview (contentView) é colocada abaixo de cerca de 64 px (aproximadamente). Essa visão não deve ser assim. Pode alguém me ajudar a resolver isso. Aqui está a demonstração do projeto que eu trabalhei e posso ser baixada aqui, pediu Mar 14 16 às 20:47 Eu trabalhei em seu projeto e o scrollview não começa no topo do VC, ele começa no final do navBar. Apenas a vista mais pequena deve começar. Além disso, você nem tem uma classe para esse VC, você tem que adicioná-lo e definir a partir da visão carregou a altura do scrollview que você deseja. Para ser honesto, eu recomendo que você comece um novo tutorial do zero, pois faltam algumas coisas em seu projeto e serão mais rápidos. Tome cuidado) ndash Victor Rius 22 de março 16 às 13: 26 Eu preciso definir restrições no uiscrollview no viewcontroller contendo barra de navegação e tabbar. I colocou um uiview (contentView) dentro do scrollview que é da mesma altura que o scrollview. Essas são as coisas que Eu configurei curently, configure 4 restrições para scrollview (superior, inferior, esquerda, direita) com restrições à margem desmarcada, que é 0 para todas as bordas. Defina 4 restrições para uiview (contentView) dentro de scrollview (superior, inferior, esquerda, direita) com restrições à margem desmarcada, que é 0 para todas as bordas. Defina igual largura e igual altura para scrollview e a saída UIView (contentView) está sendo exibida como essa uiview (contentView) é colocada abaixo de cerca de 64 px (aproximadamente). Essa visão não deve ser assim. Pode alguém me ajudar a resolver isso. Aqui está a demonstração do projeto que eu trabalhei e posso ser baixada aqui, pediu Mar 14 16 às 20:47 Eu trabalhei em seu projeto e o scrollview não começa no topo do VC, ele começa no final do navBar. Apenas a vista mais pequena deve começar. Além disso, você nem tem uma classe para esse VC, você tem que adicioná-lo e definir a partir da visão carregou a altura do scrollview que você deseja. Para ser honesto, eu recomendo que você comece um novo tutorial do zero, pois faltam algumas coisas em seu projeto e serão mais rápidos. Cuide-se) ndash Victor Rius 22 de março 16 às 13: 26 Iniciando no iOS7, os controladores de exibição usam o layout de tela inteira por padrão. Ao mesmo tempo, você tem mais controle sobre como ele expõe seus pontos de vista, e isso é feito com essas propriedades: basicamente, com essa propriedade, você define quais lados de sua exibição podem ser estendidos para cobrir toda a tela. Imagine que você empurre um UIViewController para um UINavigationController. Quando a visão desse controlador de visualização é estabelecida, ele começará onde a barra de navegação termina, mas essa propriedade irá definir quais lados da vista (superior, esquerda, inferior, direita) podem ser estendidos para preencher a tela inteira. Deixe-o com um exemplo: Aqui você não está definindo o valor de edgesForExtendedLayout. Portanto, o valor padrão é tomado (UIRectEdgeAll), então a vista amplia seu layout para preencher a tela inteira. Este é o resultado: como você pode ver, o fundo vermelho se estende por trás da barra de navegação e da barra de status. Agora, você vai definir esse valor para UIRectEdgeNone. Então você está dizendo ao controlador de exibição para não estender a exibição para cobrir a tela: Esta propriedade é usada quando sua exibição é UIScrollView ou similar, como um UITableView. Você quer que sua mesa comece onde a barra de navegação termina, porque você não verá todo o conteúdo se não, mas ao mesmo tempo você deseja que sua tabela cubra toda a tela ao deslocar-se. Nesse caso, definir bordasForExtendedLayout para None não funcionará porque sua tabela começará a deslizar para onde a barra de navegação termina e não vai atrasar. Aqui é onde esta propriedade é útil, se você deixar o controlador de exibição ajustar automaticamente as inserções (configurando esta propriedade para SIM, também o valor padrão), ela adicionará inserção no topo da tabela, então a tabela começará onde a navegação O bar termina, mas o pergaminho cobrirá toda a tela. Isto é quando é definido como NÃO: E SIM (por padrão): Em ambos os casos, a tabela se desliza para trás da barra de navegação, mas no segundo caso (SIM), ele irá começar por baixo da barra de navegação. Esse valor é apenas uma adição aos anteriores. Se a barra de status for opaca, as vistas não serão estendidas para incluir a barra de status também, a menos que este parâmetro seja SIM. Então, se você estender sua visão para cobrir a barra de navegação (edgeForExtendedLayout para UIRectEdgeAll) e o parâmetro é NO (padrão), ele não cobrirá a barra de status se for opaco. Se algo não estiver claro, escreva um comentário e eu responda. Como o iOS sabe o que o UIScrollView usa para usar o iOS, aceita a primeira sub-visualização na visualização do seu viewcontrollers, de modo que o do índice 0 e, se for uma subclasse do UIScrollView, aplica as propriedades explicadas a ele. Claro, isso significa que o UITableViewController funciona por padrão (uma vez que o UITableView é a primeira visualização).

Comments

Popular Posts