В моем приложении есть один (и только один) элемент пользовательского интерфейса, на который нет ссылки в файле макета XML.
Этот элемент представляет собой кнопку, которая создается и возвращается во время выполнения сторонней библиотекой (т.е. я не могу это контролировать).
Моя проблема в том, что я хотел бы, чтобы некоторые элементы (TextViews) в файле макета XML были размещены относительно этой кнопки , используя RelativeLayout
.
Можно ли "зарезервировать пустой слот" в файле макета XML для этой кнопки, чтобы я мог сделать что-то вроде следующего?
<TextView android:id="@+id/tv_text_under_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/btn_dynamically_created_button"
android:text="" />
В качестве альтернативы, если бы я устанавливал макет во время выполнения с помощью RelativeLayout.LayoutParams.addRule()
, каким был бы идентификатор этой динамически создаваемой кнопки, если она вообще не имеет ссылки в файле макета XML?
Например, в следующем вызове:
layoutParams.addRule(RelativeLayout.BELOW, R.id.btn_dynamically_created_button);
Что бы я положил вместо R.id.btn_dynamically_created_button
?
Обновление : Благодаря приведенному ниже ответу я создал заполнитель, подобный этому:
<LinearLayout android:id="@+id/btn_dynamically_created_button"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</LinearLayout>
Задача теперь такова: как связать возвращенный объект из getDynamicallyCreatedButton () (возвращаемый объект является подклассом LinearLayout
, не Button
), с R.id.btn_dynamically_created_button
?
РЕДАКТИРОВАТЬ: Эта тема , кажется, решить аналогичную проблему, но я не уверен, что понимаю предложенное решение.