В случае потери здесь. Поиск по всему миру и не могу найти ответ на этот вопрос ...Пользовательский вид не отображается при динамическом добавлении
У меня есть XML-макет, где у меня есть относительный макет, который я использую в качестве владельца места для разных видов.
<RelativeLayout
android:id="@+id/relVariableLayoutPlaceHolder"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="@color/white"
>
</RelativeLayout>
В моей деятельности, у меня есть кнопка для пользователя, чтобы нажать и при нажатии клавиши, я хочу обычай ClockView
быть создан и добавлен динамически. Обратите внимание, что _variableLayout
прекрасно установки в методе onCreate
:
public void onStartTimeClick(View view)
{
//Clean up any left over views
_variableLayout.removeAllViews();
//Add clock view
ClockView clockView = new ClockView(_context);
_variableLayout.addView(clockView);
}
Проблема заключается в том, что при нажатии кнопки ничего не происходит на экране. Я могу, однако, видеть это, когда я нажимаю TextView
, который также находится на экране.
Я загрузил некоторые изображения здесь до и после нажатия TextView
: http://imgur.com/a/9lebv
Я предположил бы, что это что-то делать с экрана не обновляется после представления часов рисуется, но я пробовал все комбинации invalidate()
и requestLayout()
Я могу придумать. Есть идеи?
Спасибо за предложение. Я фактически объявляю параметры макета в объекте ClockView, но я удалил это и попробовал это, чтобы убедиться. Тот же результат. –
Вы можете включить некоторые параметры отладки на устройстве Android, чтобы увидеть, что отображается. И также есть средство просмотра иерархии из инструментов Android, чтобы проверить его: http://developer.android.com/tools/help/hierarchy-viewer.html –
Интересно ... Когда я нажимаю кнопку «Дамп-иерархия» из инструментов Android окно, ClockView появится на моем устройстве. Таким образом, вид, очевидно, есть, он просто не отображается на устройстве изначально. Все еще в растерянности, но, по крайней мере, это доказывает, что я не сумасшедший. –