Nano Hash - криптовалюты, майнинг, программирование

Как использовать layoutinflator для добавления представлений во время выполнения?

У меня есть два макета: main.xml и buttonpanel.xml. В buttonpanel.xml в основном linearlayout я установил гравитацию внизу. Теперь я пытаюсь добавить макет панели кнопок, используя следующий код.

setContentView(R.layout.main);
LinearLayout layout=(LinearLayout)findViewById(R.id.mainlinearlayout);
LayoutInflater inflater= (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view=inflater.inflate(R.layout.buttonpanel,null);
layout.addView(view);

Моя проблема в том, что панель добавляется вверху, хотя я установил гравитацию внизу в buttonpanel.xml. Если я добавлю buttonpanel.xml в main.xml, используя include, он будет работать нормально.

Может ли кто-нибудь помочь мне, что не так с моим кодом?

19.01.2011


Ответы:


1

У меня были проблемы с отбрасыванием параметров макета при раздувании представлений так, как вы это делаете. Если я использую немного другой вызов inflate, мои параметры макета соблюдаются:

parent_view = inflater.inflate(R.layout.buttonpanel, parent);

Или в моем случае, когда родитель не поддерживал добавление к нему представлений:

view = inflater.inflate(R.layout.buttonpanel, parent, false);

Возможно, это решит и вашу проблему.

РЕДАКТИРОВАТЬ: в зависимости от заданных параметров возвращаются разные представления. LayoutInflater

19.01.2011
  • как вы сказали, родитель не поддерживал добавление к нему представлений. Так что view = inflater.inflate(R.layout.buttonpanel, parent, false); решает мою проблему. спасибо 20.01.2011
  • Мне тоже помогло, но пришлось вызывать parent.addView(view); чтобы добавить вид в компоновку 11.04.2012
  • Я делаю это так, и мой вид все еще выравнивается сверху:/ 02.08.2013
  • Что значит не поддерживает? как определить, что родитель не поддерживает addView 09.10.2015

  • 2

    вы можете использовать индекс дочернего просмотра для его настройки. я думаю, это поможет вам. попробуйте другой метод для addview, который включает childindex

    19.01.2011
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..