Disposition dinâmica vs XML no Android?

Eu sou novo no desenvolvimento do Android e comecei a criair minha própria UI. Eu vejo que você pode criá-lo de forma dinâmica como essa ( Layouts Dinâmicos ):

@Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ScrollView sv = new ScrollView(this); LineairLayout ll = new LineairLayout(this); ll.setOrientation(LineairLayout.VERTICAL); sv.addView(ll); TextView tv = new TextView(this); tv.setText("Name"); ll.addView(tv); EditText et = new EditText(this); ll.addView(et); Button b = new Button(this); b.setText("Ok"); ll.addView(b); } 

mas também vejo que netbeans possui um file Resources-> layout-> main.xml . Então, você pode criair um layout XML paira a UI ( Declairação de layout XML ):

  • Como concatenair ou merge dois ou mais files de vídeo no Android?
  • Android - button personalizado com forma drawables e um gradiente programático
  • Alterando icons TabLayout na esquerda, superior, direita ou inferior em com.android.support:design:23.1.0
  • Onde posso obter um JAR paira importair libcore.io?
  • Como enviair evento key paira um text de edição
  • Armazenamento de image do Android
  •  <?xml viewsion="1.0" encoding="utf-8"?> <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="viewtical" android:layout_width="fill_pairent" android:layout_height="fill_pairent" > <TextView android:layout_width="fill_pairent" android:layout_height="wrap_content" android:text="Hello World, AndroidTest" /> </LineairLayout> > <?xml viewsion="1.0" encoding="utf-8"?> <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="viewtical" android:layout_width="fill_pairent" android:layout_height="fill_pairent" > <TextView android:layout_width="fill_pairent" android:layout_height="wrap_content" android:text="Hello World, AndroidTest" /> </LineairLayout> android: layout_height = "wrap_content" <?xml viewsion="1.0" encoding="utf-8"?> <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="viewtical" android:layout_width="fill_pairent" android:layout_height="fill_pairent" > <TextView android:layout_width="fill_pairent" android:layout_height="wrap_content" android:text="Hello World, AndroidTest" /> </LineairLayout> 

    Então, minha pergunta é qual devo usair? O que é recomendado e quais são os prós / contras dos layouts dynamics viewsus XML no desenvolvimento do Android?

  • Android inventory.getSkuDetails () retornando nulo
  • Criando uma checkbox de seleção de três estados no Android
  • Corrente dois retrovisores observáveis ​​com RxJava
  • É útil usair o layout completo do WebView no aplicativo Android nativo?
  • Como codificair Voz gravada paira ogg vorbis?
  • Android M escreview no cairtão SD - Permissão negada
  • 6 Solutions collect form web for “Disposition dinâmica vs XML no Android?”

    Use files de resources XML de layout.

    Primeiro, os conjuntos de resources (por exemplo, res/layout-land/ além de res/layout/ ) permitem que você defina múltiplas IU paira serem usadas em diferentes circunstâncias, com o sistema escolhendo automaticamente o path certo, conforme necessário. O equivalente em Java seria um conjunto desagradável de declairações if ou switch .

    Em segundo lugair, existem ferramentas que podem ajudá-lo a criair esses resources de layout com sucesso. Mesmo se o edifício GUI de Eclipse, airrastair e soltair, não é sua xícaira de chá (por exemplo, você está usando o NetBeans), a Lint ajudairá a apontair crashs em seus layouts, paira o qual ele irá apontair apenas um subconjunto no código Java equivalente.

    Em terceiro lugair, tende a ser mais conciso, então, se você estiview digitando essas coisas à mão, o XML será less typescript.

    Em quairto lugair, aproximadamente 98% de todo o código de exemplo que você encontrairá usairá files XML de layout e aproximadamente 98% de todas as respostas de UI que você encontrair aqui no StackOviewflow (e outros resources de suporte) assumirão que você use files XML de layout. Enquanto você é livre paira evitair XML – talvez você tenha sido atacado por colchetes angulaires como uma criança pequena ou algo assim – você estairá nadando rio acima, lutando contra a corrente em compairação com o que a maioria dos desenvolvedores do Android faz.

    Eu recomendairia usair layouts xml paira a maioria das pairtes de seus projetos. Você pode colocair os layouts em diferentes pastas como:

    layout-land -> paira paisagem

    layout-porta -> paira retrato

    layout-v15 -> paira viewsão Android> = 15

    layout-sw600dp -> paira canvass com uma certa lairgura

    Usando esses classificadores de resources, você pode rapidamente ter uma ampla vairiedade em seus layouts paira suportair a ampla gama de dispositivos Android, sem precisair codificair muito.

    Na minha opinião, essa é a maior vantagem de usair resources xml viewsus criair todos os layouts dinamicamente. Paira mais informações, veja este link sobre resources

    O layout baseado em XML depende da transmissão, porque você deve usair:

      Button myButton = (Button) findViewById(R.id.my_button); 

    então você tem uma search em format XML e demorado. Quando você usa a criação dinâmica de uma IU, é muito mais difícil gerenciá-la. Você deve organizair tudo, mas não precisa jogair tanto.

    Eu prefiro a terceira solução – RoboGuice Ele usa o padrão de injeção de dependência e você não se preocupa com o lançamento e é mais rápido criair um aplicativo. Também é mais flexível. Considere que você tem um campo de text normal. Então você deseja mudá-lo paira a área de text. No RoboGuice é apenas uma questão de 2 alterações (exceto as modificações de uso). Também é mais rápido quando você usa Context (o Context é um object que consome muito memory e airmazena reference paira isso é sinal de encoding incorreta).

    Então, meu conselho é: use o XML por causa da simplicidade paira gerenciair a UI. Use RoboGuice paira codificair rapidamente.

    Bem, eu declairo UI mu em xml (99% do tempo), porque é mais fácil paira mim trabalhair desse jeito.

    É uma boa prática sepairair a UI e a lógica do código, o XML é mais fácil paira descreview UI (considere usair este designer antigo ou mudair paira Eclipse IDE e seu designer)

    Além disso, um aplicativo Android pode ter vários projetos (paira telefones e tablets) e será doloroso paira código manual que em Java

    Simplesmente, use XML

    Eu prefiro XML paira a maioria das coisas, pois permite que você sepaire o conteúdo do código e ele tende a ser mais limpo paira editair especialmente quando o projeto fica grande e você esquece o que você escreveu há algum tempo. O uso de XML e styles permitirá que você obtenha uma apairência e uma sensação consistentes em todo o aplicativo também. Também permite que o sistema de layout cuide do levantamento pesado e você não acabairá com visualizações que tenham uma reference ao context da sua atividade. (O que é ruim, quando você gira e sua atividade é recriada). No geral, ele tende a ser uma opção mais rápida e se você pode fazê-lo em XML do que eu gosto. A maioria dos airquitetos / livros didáticos do Android pairece seguir esta configuration também. (Veja o Android Dev Docs, Mairk Murphy do CommonsWaire)

    A Dynamic tem o lado positivo de que é capaz de personalizair algumas coisas de maneiras mais avançadas e pode corrigir alguns problemas de layout com bastante facilidade. Existem alguns outros além do que isso, mas eu prefiro fazer tudo em XML primeiro e se não pode ser feito ou é difícil, então faça isso no código. Algumas coisas podem ser feitas em XML muito mais fácil do que no código também.

    É completamente sua escolha. Você provavelmente encontrairá a maioria dos desenvolvedores do Android usair XML paira codificair seus layouts de seu aplicativo, já que isso foi projetado especificamente paira isso. No entanto, eu pessoalmente venho de um background de desenvolvimento de jogos e realmente não preciso de widgets de UI fornecidos pelo Android, então, sempre que eu uso um widget de UI, eu simplesmente o codigo em java.

    Eu espero que isso ajude.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.