80 votes

Android superpose une vue sur tout ?

Peut-on superposer une vue sur tout dans Android ?

Dans l'iPhone, j'obtiendrais que la nouvelle vue définisse son frame.origin à (0,0) et sa largeur et sa hauteur à la largeur et la hauteur de self.view . En l'ajoutant à self.view le ferait agir comme une superposition, couvrant le contenu derrière (ou, si l'arrière-plan est transparent, montrant la vue derrière).

Existe-t-il une technique similaire dans Android ? Je réalise que les vues sont légèrement différentes (il y a trois types (ou plus...) relativelayout, linearlayout et framelayout) mais y a-t-il un moyen de superposer une vue sur tout sans distinction ?

0voto

HaxnHarald Points 11

J'ai essayé les awsers avant mais cela n'a pas fonctionné. Maintenant, j'ai utilisé un LinearLayout au lieu d'un TextureView, et ça marche sans problème. J'espère que cela aidera d'autres personnes qui ont le même problème :)

    view = (LinearLayout) findViewById(R.id.view); //this is initialized in the constructor
    openWindowOnButtonClick();

public void openWindowOnButtonClick()
{
    view.setAlpha((float)0.5);
    FloatingActionButton fb = (FloatingActionButton) findViewById(R.id.floatingActionButton);
    final InputMethodManager keyboard = (InputMethodManager) getSystemService(getBaseContext().INPUT_METHOD_SERVICE);
    fb.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            // check if the Overlay should be visible. If this value is false, it is not shown -> show it.
            if(view.getVisibility() == View.INVISIBLE)
            {
                view.setVisibility(View.VISIBLE);
                keyboard.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, 0);
                Log.d("Overlay", "Klick");
            }
            else if(view.getVisibility() == View.VISIBLE)
            {
                view.setVisibility(View.INVISIBLE);
                keyboard.toggleSoftInput(0, InputMethodManager.HIDE_IMPLICIT_ONLY);
            }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X