Pergunta

Romain Guy criou uma ótima apresentação e implementação de exemplo para um FlowLayout em atividades Android (ao qual ele vincula na resposta a esta pergunta: Como posso fazer algo como FlowLayout no Android? )

Eu adoraria usar algo assim em um App Widget, mas eles parecem estar extremamente restritos às classes de layout mencionadas na documentação: http://developer.android.com/guide/topics/appwidgets/index.html#CreatingLayout .

Tentei estender o LinearLayout, mas parece que descendentes dos layouts mencionados não são permitidos.Talvez eu possa reorganizar programaticamente meus TextViews usando um RelativeLayout?

Existe uma maneira mais inteligente de conseguir isso?

Por que os layouts de widgets são tão restritivos?Estou faltando alguma coisa importante?

Foi útil?

Solução

Tentei estender o LinearLayout, mas parece que descendentes dos layouts mencionados não são permitidos.

Correto.

Talvez eu possa reorganizar programaticamente meus TextViews usando um RelativeLayout?

Não vejo como, já que não é você quem está renderizando sua interface do usuário.

Existe uma maneira mais inteligente de conseguir isso?

Não está claro o que é "isto".Se “isto” for “um FlowLayout digite UI para um widget de aplicativo", escreva sua própria tela inicial (para que você possa ter a UI desejada sem a necessidade de um widget de aplicativo) ou redesenhe a UI.Os widgets de aplicativos têm uma paleta limitada de widgets e contêineres disponíveis, como você observou.

Estrategicamente, você poderia contribuir com um FlowLayout para AOSP e casa que ele estará disponível em alguma versão futura do Android, e espero ainda que seja habilitado para uso por widgets de aplicativos.

Por que os layouts de widgets são tão restritivos?Estou faltando alguma coisa importante?

Os widgets do aplicativo são renderizados pela tela inicial.Há milhares de implementações de tela inicial.Eles rodam em seus próprios processos, com código próprio, escrito por seus próprios desenvolvedores.

Dessa forma, você não está realmente criando widgets em seu aplicativo que são exibidos na tela inicial.Em vez disso, você está criando uma estrutura de dados, descrevendo os widgets que deseja que a tela inicial crie em seu nome.Como tal, RemoteViews não oferece suporte a subclasses definidas pelo aplicativo, simplesmente porque as classes do seu aplicativo não estão no processo da tela inicial.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top