如何在android中动态设置相对布局的高度

Nav*_*afi 5 layout android css-position

这在模拟器上工作正常但在设备上没有,因为我已经将高度硬编码为365.任何人都可以在这方面帮助我吗?

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent">
<TabHost android:id="@+id/tab_host"
    android:layout_width="fill_parent" android:layout_height="fill_parent">
    <TabWidget android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:id="@android:id/tabs"
        android:layout_gravity="bottom"/>
        <FrameLayout android:id="@android:id/tabcontent"
            android:layout_width="fill_parent" android:layout_height="fill_parent">
            <RelativeLayout android:id="@+id/first_tab"
                android:orientation="vertical" android:layout_width="fill_parent"
                android:layout_height="365px">
                <WebView xmlns:android="http://schemas.android.com/apk/res/android"
                    android:id="@+id/webview"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"/>
                    <ImageView
                        android:id="@+id/widget31"
                        android:layout_width="fill_parent"
                        android:layout_height="49px"
                        android:layout_x="0px"
                        android:layout_y="0px"
                        android:background="#39000000"
                        android:layout_alignParentBottom="true">
                    </ImageView>
                    <ImageButton
                        android:id="@+id/btnFB"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:src="@drawable/fb"
                        android:background="#00000000"
                        android:layout_alignRight="@+id/widget31"
                        android:layout_alignParentBottom="true">
                    </ImageButton>
                    <TextView   
                        android:id="@+id/myTextView1"   
                        android:layout_height="wrap_content"   
                        android:layout_width="wrap_content"   
                        android:text="Share"
                        android:textColor="#111111"
                        android:textSize="14pt"
                        android:paddingBottom="5px"
                        android:layout_alignLeft="@+id/widget31"
                        android:layout_alignParentBottom="true"/> 
                        <ImageButton
                            android:id="@+id/btnTwitter"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:src="@drawable/twitter"
                            android:visibility="invisible"
                            android:background="#00000000"
                            android:layout_alignRight="@+id/widget31"
                            android:layout_alignParentBottom="true">
                        </ImageButton>
            <!-- Replace TextView with your layout content for this tab -->
            </RelativeLayout>
            <LinearLayout android:id="@+id/second_tab"
                android:orientation="vertical" android:layout_width="fill_parent"
                android:layout_height="fill_parent">
                <ScrollView   
                    android:id="@+id/ScrollView01"  
                    android:layout_height="365px"   
                    android:layout_width="fill_parent">  
                    <WebView xmlns:android="http://schemas.android.com/apk/res/android"
                        android:id="@+id/webviewForRSS"
                        android:layout_width="fill_parent"
                        android:layout_height="365px"
                        android:background="#98012E"/>
                </ScrollView>
            <!-- Replace TextView with your layout content for this tab -->
            </LinearLayout>
            <LinearLayout android:id="@+id/edit_item_text_tab"
                android:orientation="vertical" android:layout_width="fill_parent"
                android:layout_height="fill_parent"/>
            </FrameLayout>
    </TabHost>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

谢谢.

Nik*_*kki 15

您可以通过不同方式动态更改布局高度-----

第一,

getLayoutParams().height= x;
requestLayout(); or invalidate(); 
Run Code Online (Sandbox Code Playgroud)

其次,

 first_tab.setHeight(int pixels);
Run Code Online (Sandbox Code Playgroud)

尝试使用任何方式.......


Ste*_*teD 6

你不应该使用px,dp而是使用.

android:layout_height="365dp"
Run Code Online (Sandbox Code Playgroud)

在这里阅读,更好地了解密度独立像素(dp).

强烈建议使用dp单位来定义应用程序的UI,以确保在不同屏幕上正确显示UI.