Android накладывает вид на все?

Можете ли вы наложить представление поверх всего в андроиде?

В iPhone я бы получил новое представление, установив его frame.origin в (0,0) и его ширину и высоту в ширину и высоту self.view . Добавив его в self.view вы можете заставить его действовать как оверлей, покрывая содержание позади (или если у него был прозрачный фон, а затем показывался вид сзади).

Есть ли подобная техника в андроиде? Я понимаю, что взгляды немного разные (есть три типа (или более …) relativelayout, linearlayout и framelayout), но есть ли способ просто наложить представление поверх всего без parsingа?

Просто используйте RelativeLayout или FrameLayout . Последний дочерний вид будет перекрывать все остальное.

Android поддерживает шаблон, который не поддерживает Cocoa Touch SDK: Управление макетами.
Макет для iPhone означает положение абсолютно (кроме некоторых факторов strech). Макет в android означает, что дети будут размещены по отношению друг к другу.

Пример (второй EditText полностью покрывает первый):

        

FrameLayout – это своего рода стек представлений. Сделано для особых случаев.

RelativeLayout довольно мощный. Вы можете определить правила, такие как View A, чтобы выровнять родительский макет внизу , View B должен выровнять снизу вверх и т. Д.

Обновление по комментариям

Обычно вы устанавливаете контент с помощью setContentView(R.layout.your_layout) в onCreate (он будет раздувать макет для вас). Вы можете сделать это вручную и вызвать setContentView(inflatedView) , нет никакой разницы.

Само представление может представлять собой единое представление (например, TextView ) или сложную иерархию компоновки (вложенные макеты, поскольку все макеты являются самими представлениями).

После вызова setContentView ваша активность знает, как выглядит его содержимое, и вы можете использовать (FrameLayout) findViewById(R.id.root_view) для получения любого представления int этой иерархии (общий шаблон (ClassOfTheViewWithThisId) findViewById(R.id.declared_id_of_view) ).

       

Теперь любое представление, которое вы добавляете в LinearLayout с android:id = "@+id/overlay" будет отображаться как оверлей с гравитацией = справа на линейной компоновке с android:id="@+id/Everything"

Вы можете использовать bringToFront :

  View view=findViewById(R.id.btnStartGame); view.bringToFront(); 

Лучший способ – ViewOverlay. Вы можете добавлять любые нарисованные в качестве наложения на любой вид в качестве своего наложения с Android JellyBeanMR2 (Api 18).

Добавьте mMyDrawable в mMyView качестве наложения:

 mMyDrawable.setBounds(0, 0, mMyView.getMeasuredWidth(), mMyView.getMeasuredHeight()) mMyView.getOverlay().add(mMyDrawable) 

Раньше я пробовал знатоки, но это не сработало. Теперь я использовал LinearLayout вместо TextureView, теперь он работает без каких-либо проблем. Надеюсь, это поможет некоторым другим, у кого такая же проблема. 🙂

  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); } 
  • Получить сгенерированный идентификатор после вставки
  • Почему объект Object.toString () по умолчанию содержит hash-код?
  • Есть ли метод, который вычисляет факториал в Java?
  • Почему мое раскрывающееся меню переполнения над панелью действий?
  • Статический порядок инициализации Java
  • Неполадка контекста ошибки сборки IntelliJ
  • Android-библиотека Gradle release JAR
  • Повышение числа на Java
  • Как сделать PDF в Android
  • Создать новый class из переменной в Java
  • Изменение цвета фона отдельных элементов меню навигации
  • Давайте будем гением компьютера.