Android — Добавить TextView в пользовательское действие для отображения в нескольких действиях

#android

#Android

Вопрос:

Я попытался добавить TextView в пользовательское действие для отображения в нескольких действиях, но ничего не отображается. Это мой пользовательский код действия :

 LinearLayout layout;

public void SetupFooter() {
    layout = new LinearLayout(this);
    layout.setOrientation(LinearLayout.VERTICAL);
    layout.setGravity(android.view.Gravity.BOTTOM|android.view.Gravity.CENTER_HORIZONTAL); 

    TextView tv = new TextView(this);
    tv.setText("abc");
    layout.addView(tv);
}
 

Это мой XML-код main_activity, в который я хочу добавить нижний колонтитул :

 <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@ id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1" >

            <FrameLayout
                android:id="@ id/content_frame"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />

            <ImageButton
                android:id="@ id/btnGoToTop"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center|bottom"
                android:layout_margin="5dip"
                android:background="@drawable/buttongototop"
                android:padding="5dip"
                android:visibility="gone" />
        </FrameLayout>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="bottom"
            android:text="TextView" />
    </LinearLayout>

    <ListView
        android:id="@ id/left_drawer"
        android:layout_width="280dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@color/white"
        android:choiceMode="singleChoice"
        android:headerDividersEnabled="false" />

    <ListView
        android:id="@ id/right_drawer"
        android:layout_width="280dp"
        android:layout_height="match_parent"
        android:layout_gravity="end"
        android:background="@color/white"
        android:choiceMode="singleChoice"
        android:headerDividersEnabled="false" />

</android.support.v4.widget.DrawerLayout>
 

Когда я вызываю SetupFooter() в расширенных действиях, ничего не отображается.
Есть ли какие-либо проблемы с моим кодом?
Извините за мой плохой английский и спасибо за помощь!

Отредактировано: я добавил это: addContentView(макет, новые параметры компоновки (LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); Он показан сейчас, но он не помещен внизу, как я могу заставить его оставаться внизу?

Ответ №1:

Вы создаете 2 представления в своей функции: текстовое представление и линейный макет. Вы добавляете текстовое представление в линейный макет, но вы нигде не размещаете линейный макет, поэтому он не отображается. Если вы хотите добавить его в линейный макет, который уже есть в вашем xml, вам нужно присвоить ему идентификатор, чтобы вы могли получить ссылку на него с помощью findViewById, а затем добавить к нему текстовое представление.

Комментарии:

1. Привет, я добавил этот addContentView(макет, новые параметры компоновки (LayoutParams.LayoutParams. WRAP_CONTENT,LayoutParams. WRAP_CONTENT)); Он отображается сейчас, но он не внизу, а вверху..