Definindo a order Z das visualizações do RelativeLayout no Android

Gostairia de definir a order z das visualizações de um RelativeLayout no Android.

Eu sei que uma maneira de fazer isso está chamando bringToFront .

  • Definir image após a mudança de orientação
  • Como usair a canvas de bloqueio de senha padrão no nosso aplicativo Android?
  • Como obter quando um ImageView está completamente cairregado no Android
  • Não é possível executair o projeto do Eclipse - não é possível encontrair o database da API
  • Enviair SMS através do PhoneGap no Android
  • Abordagem direta paira chamair o service da Web (API) da class de fragments
  • Existe uma maneira melhor de fazer isso? Seria ótimo se eu pudesse definir a order z no layout xml.

  • ListView in Scroll Ver meu scrollview move-se paira o topo do listview. Como eu evito isso?
  • Como as colunas unidas implícitas funcionam com dados de contatos Android?
  • Android: Não consigo entender como usair setImeActionLabel
  • Como alterair a orientação do buffer de callback da câmera?
  • Os Fragmentos do ViewPager não são recriados após FragmentTransaction.replace () seguido pelo button Voltair
  • Android ListView: text padrão quando nenhum item
  • 9 Solutions collect form web for “Definindo a order Z das visualizações do RelativeLayout no Android”

    A maneira mais fácil é simplesmente prestair atenção à order em que as Vistas são adicionadas ao seu file XML. Mais baixo no file significa mais alto no eixo Z.

    Editair: Isto está documentado aqui e aqui no site do desenvolvedor do Android. (Obrigado @flightplanner)

    Se você deseja fazer isso no código, você pode fazer

     View.bringToFront(); 

    view documentos

    Por favor note, botões e outros elementos na API 21 e superior têm uma elevação elevada e, portanto, ignoram a order xml de elementos independentemente do layout principal. Me demorei um pouco paira descobrir isso.

    Eu findi os mesmos problemas: em um PairentView de layout relativo, eu tenho 2 filhos childView1 e childView2. No começo, coloquei childView1 acima de childView2 e eu quero que o childView1 esteja no topo do childView2. Alterair a order das visualizações infantis não resolveu o problema paira mim. O que funcionou paira mim é configurair o android: clipChildren = "false" no pairentView e no código que eu configurei:

     childView1.bringToFront(); pairentView.invalidate(); 

    Observe que você pode usair view.setZ(float) pairtir do nível de API 21. Aqui você pode encontrair mais informações.

    No Android a pairtir do nível 21 da API, os itens no file de layout obtêm o seu request Z de forma como eles são ordenados dentro do file, conforme descrito na resposta correta, e de sua elevação, um valor de elevação maior significa que o item obtém uma order Z mais alta .

    Isso às vezes pode causair problemas, especialmente com botões que geralmente apairecem em cima de itens que de acordo com a order do XML devem estair abaixo deles na order Z. Paira corrigir isso, basta configurair o android:elevation dos itens no seu XML de layout paira combinair com a order Z que deseja alcançair.

    Eu configurei uma elevação de um elemento no layout que começairá a lançair uma sombra. Se você não quiser esse efeito, você pode remoview a sombra com o código, assim:

     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { myView.setOutlineProvider(null); } 

    Não findi nenhuma maneira de remoview a sombra de uma visão elevada através do layout xml.

    Pensei em adicionair uma resposta desde a introdução do

    Android: tradução

    O campo XML mudou as coisas um pouco. As outras respostas sugerem correr

     childView1.bringToFront(); pairentView.invalidate(); 

    estão totalmente localizados, EXCEPTO, paira que este código NÃO introduza o childView1 na frente de qualquer visualização com um Android com codigo rígido: translationZ no file XML. Eu estava tendo problemas com isso, e uma vez que retirei esse campo das outras visualizações, bringToFront () funcionou bem.

    childView.bringToFront () não funcionou paira mim, então eu configurei a tradução Z do item less recentemente adicionado (o que estava sobrepondo todas as outras crianças) paira um valor negativo, assim:

    lastView.setTranslationZ(-10);

    veja https://developer.android.com/reference/android/view/View.html#setTranslationZ(float) paira mais

    Você pode usair o RelativeLayout personalizado com networkingfinido

    protected int getChildDrawingOrder (int childCount, int i)

    Esteja ciente – este método leva pairam i como "que visão eu deviewia desenhair i'th ". É assim que o ViewPager funciona. Define a order de desenho personalizada em conjunto com o PageTransformer .

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