Как настроить addContentView в нижней части экрана в Android - PullRequest
4 голосов
/ 30 июня 2011

Я хотел бы спросить кое-что о команде addContentView().Я создал пользовательский вид из LinearLayout(fill parent, wrap content) в вертикальном режиме и некоторых кнопок.

Мой вопрос: возможно ли разместить мой пользовательский вид внизу экрана с помощью команды addContentView()?

Я сейчас использую addContentView(), но мой пользовательский вид находится вверху экрана.Я уже пытался изменить высоту пользовательского представления в родительском заливке, но затем у меня есть полноэкранный пользовательский вид.

Ответы [ 4 ]

15 голосов
/ 05 марта 2012

Решение состоит в том, чтобы обернуть ваш пользовательский вид в RelativeLayout, который заполняет весь экран, а затем добавить его с addContentView. Например, чтобы добавить пользовательскую кнопку в нижней части экрана:

// Fake empty container layout
RelativeLayout lContainerLayout = new RelativeLayout(this);
lContainerLayout.setLayoutParams(new RelativeLayout.LayoutParams( LayoutParams.FILL_PARENT , LayoutParams.FILL_PARENT ));

// Custom view
Button mCustomView = new Button(this);
mCustomView.setText("Test");
LayoutParams lButtonParams = new RelativeLayout.LayoutParams( LayoutParams.WRAP_CONTENT , LayoutParams.WRAP_CONTENT );
lButtonParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
mCustomView.setLayoutParams(lButtonParams);
lContainerLayout.addView(mCustomView);

// Adding full screen container
addContentView(lContainerLayout, new LayoutParams( LayoutParams.FILL_PARENT , LayoutParams.FILL_PARENT ) );

Это должно сделать это

2 голосов
/ 30 июня 2011

Попробуйте с помощью следующего кода

LayoutParams lp =new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        lp.gravity=Gravity.BOTTOM;
        addContentView(b, lp); 

Используя RelativeLayout, вы также можете достичь того же. Вы можете добавить правило для установки вида внизу родительского макета.

Спасибо

0 голосов
/ 30 июня 2011
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:id="@+id/rl"
    android:layout_height="360dip">
        <WebView android:id="@+id/webviewHelp" android:layout_width="fill_parent"
        android:layout_height="fill_parent" />
    <Button android:id="@+id/My_btn"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true" android:gravity="center"
        android:textSize="8px" android:text="Download this mp3 file"
        android:textColor="@color/white" android:layout_width="fill_parent"
        android:layout_height="27dip"  />
    <Button android:id="@+id/My_btn1"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true" android:text="this is button !"
        android:layout_width="0dip" android:layout_height="0dip"
        android:visibility="invisible" />
</RelativeLayout>
0 голосов
/ 30 июня 2011

Вы должны обернуть свой LinearLayout в другой Layout. То есть RelativeLayout, и добавьте это с addContentView.

    <?xml version="1.0" encoding="utf-8"?>        
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <LinearLayout
            android:id="@+id/yourLayout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"/>

             <!-- Yout content -->

        </LinearLayout>
    </RelativeLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...