Я добавляю кнопку программно в свой существующий вид Android, когда пользователь нажимает другую кнопку. Он работает с точки зрения функциональности, но некоторые данные стиля, похоже, игнорируются.Android - добавление вида программно игнорирует некоторые атрибуты стиля
Я добавляю кнопку, имея отдельный макет, содержащий только кнопку, со значением стиля, предварительно заполненным.
<Button xmlns:android="http://schemas.android.com/apk/res/android" style="@style/FileStorageDeleteButton"></Button>
Используя getLayoutInflater
, я тогда в состоянии добавить эту кнопку в макете.
buttonDelete = (Button) getLayoutInflater().inflate(R.layout.pete_button_filedelete, null);
LinearLayout layout = (LinearLayout)findViewById(R.id.layoutFileStorage);
layout.addView(buttonDelete, 1);
У меня есть файл XML в каталоге значений, который задает цвет, текст и т.д. для @style/FileStorageDeleteButton
, большинство из которых используется с помощью кнопки, когда он добавил , Но по какой-то причине четыре атрибута поля и layout_below
игнорируются.
У меня нет ошибок в LogCat, когда появляется эта кнопка, как будто стиль просто не применяется. Если я включу кнопку вручную в XML для этого макета, он успешно использует все стили.
Любая помощь очень ценится.
Спасибо Дэвиду - ваше сообщение отправило меня в правильном направлении, чтобы найти, что я могу p осел больше переменных в раздувание. Теперь используйте 'buttonDelete = (Button) getLayoutInflater(). Inflate (R.layout.pete_button_filedelete, layout, false);', хотя 'layout_below' по-прежнему игнорируется. Я могу обойти это, но просто интересно, почему этот еще не работает? Еще раз спасибо! Если бы у меня была репутация для вас, я бы :) –
'layout_below' используется только для' RelativeLayout'. Ваш 'LinearLayout' игнорирует этот атрибут. В «LinearLayout» вы можете контролировать выше/ниже, используя позицию «Вид» в макете. –