获取具有wrap_content属性的布局高度

时间:2012-10-25 05:53:52

标签: android android-layout

我有一个简单的表格,scrollView用于滚动TableRow。我还添加了页脚问题是我需要知道页脚的大小,所以我可以将android:layout_marginBottom="<size of footerbar>提供给我的scrollView。那么如何才能获得页脚栏布局的高度?请帮帮我。

这是我的页脚代码:

<?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="wrap_content"
android:background="@color/btnColor"
android:orientation="horizontal" >


<Button
    android:id="@+id/previous"
    style="@style/pagingBarBtnAttr"
    android:layout_alignParentLeft="true"
    android:background="@drawable/choose_color_btn"
    android:drawableLeft="@drawable/previous"
    android:text="Previous" />

<TextView
    android:id="@+id/pageNo"
    style="@style/pagingBarBtnAttr"
    android:layout_centerHorizontal="true"
    android:text="Page No. 1" />

<Button
    android:id="@+id/next"
    style="@style/pagingBarBtnAttr"
    android:layout_alignParentRight="true"
    android:background="@drawable/choose_color_btn"
    android:drawableRight="@drawable/next"
    android:text="Next" />

现在因为下一个和上一个按钮有一个drawable,所以他们根据设备大小有drawable,所以页脚栏没有固定的高度值,所以我怎么能得到它的高度,所以我可以提供该值为{{1 } margin_bottom。提前谢谢..

4 个答案:

答案 0 :(得分:2)

将ViewTreeObserver用于您用于页脚的布局

 ViewTreeObserver vto = layout.getViewTreeObserver();
    vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            //Here you can get dimension of view
                        //This method will called after screen created
        }
    });

答案 1 :(得分:1)

使用View的getLayoutParams()方法,你可以从params获得高度:)

答案 2 :(得分:1)

参考以下代码

首先在xml文件中添加页脚,并将其 alignParentBottom 设置为true。

然后添加scrollView并使用页脚标识

设置其 layout_above 属性
<LinearLayout
    android:id="@+id/imgFooter"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true" />

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/imgFooter"
    android:layout_below="@id/nav_bar_header"
    android:layout_centerHorizontal="true"
    android:padding="5dp" >
</ScrollView>

答案 3 :(得分:0)

oldLayout = (android.widget.RelativeLayout.LayoutParams) view.getLayoutParams();
Width = oldLayout.width;