0

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

这是我的页脚代码:

<?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,所以页脚栏没有固定的高度值,所以我怎样才能得到它的高度,这样我就可以将该值提供给margin_bottomof scrollview。提前致谢..

4

4 回答 4

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
        }
    });
于 2012-10-25T06:06:17.907 回答
1

使用 View 的 getLayoutParams() 方法,您可以从参数中获取高度 :)

于 2012-10-25T05:57:40.027 回答
1

参考下面的代码

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

然后添加 scrollView 并将其layout_above属性设置为页脚 id

<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>
于 2012-10-25T06:00:57.950 回答
1
oldLayout = (android.widget.RelativeLayout.LayoutParams) view.getLayoutParams();
Width = oldLayout.width;
于 2012-10-25T06:05:17.007 回答