У меня есть пользовательское представление (расширение TextView), которое я хочу динамически добавить в свой макет (не хочу включать его в файл main.xml) .
В книге говорится, что нужно извлечь RelativeLayout с помощью findViewById () в моем коде java, затем создать новый экземпляр моего пользовательского представления, а затем добавить addView в RelativeLayout для добавления нового представления.
I ' Я не получаю никаких ошибок, но когда я нажимаю кнопку, чтобы добавить новый вид, ничего не происходит (вид не добавляется). Нужно ли устанавливать дополнительные свойства в моем пользовательском представлении (например, ширину макета, высоту макета), чтобы оно отображалось?
РЕДАКТИРОВАТЬ: добавить код
// changed to an imageview as I thought it might be easier to see an image
RelativeLayout rel = (RelativeLayout) findViewById(R.id.rellay);
MyCustomImageView mciv = new MyCustomImageView(null);
mciv.setId(5);
LayoutParams p = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
mciv.setLayoutParams(p);
mciv.setImageResource(R.drawable.someImage);
rel.Addview(mciv);
Пожалуйста, разместите свой код там, где вы добавляете представление. Но да, возможно, вам не хватает параметров ширины и высоты. Попробуйте ввести что-нибудь вроде
LayoutParams p = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.FILL_PARENT);
txtView.setLayoutParams(p);
или желаемых значений ширины и высоты. Также в макете xml обязательными атрибутами являются layout_width и layout_height.