1

我有一个这样嵌套的布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ScrollView 
        android:id="@+id/scrollAplicacoes"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:paddingBottom="@dimen/activity_vertical_margin"
            android:paddingLeft="@dimen/activity_horizontal_margin"
            android:paddingRight="@dimen/activity_horizontal_margin"
            android:paddingTop="@dimen/activity_vertical_margin" >

            <TextView 
                android:id="@+id/titulo"
                android:layout_width="match_parent"
                android:layout_height="60dp"
                android:fontFamily="Arial"
                android:lineSpacingExtra="-5dp"
                android:text="@string/titulo_aplicacao"
                android:textColor="#3c3c3c"
                android:textSize="25sp"
                android:textStyle="bold"/>

            <ImageView
                android:id="@+id/btnAplicacaoUm"
                android:layout_width="match_parent"
                android:layout_height="150dp"
                android:onClick="selectAplicacao"
                android:src="@drawable/aplicacoes_item1" />

            <ImageView
                android:id="@+id/btnAplicacaoDois"
                android:layout_width="match_parent"
                android:layout_height="150dp"
                android:layout_marginTop="10dp"
                android:onClick="selectAplicacao"
                android:src="@drawable/aplicacoes_item2" />

            <ImageView
                android:id="@+id/btnAplicacaoTres"
                android:layout_width="match_parent"
                android:layout_height="150dp"
                android:layout_marginTop="10dp"
                android:onClick="selectAplicacao"
                android:src="@drawable/aplicacoes_item3" />

        </LinearLayout>

    </ScrollView>

    <LinearLayout 
        android:id="@+id/menuFixo"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="@drawable/faixa_below" >

        <ImageView
            android:id="@+id/belowHome"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:contentDescription="@string/descBtnHome"
            android:layout_marginTop="5dp"
            android:src="@drawable/below_home_sel" />

        <ImageView
            android:id="@+id/belowCalculadora"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="abreCalculadora"
            android:contentDescription="@string/descBtnCalculadora"
            android:layout_marginTop="5dp"
            android:src="@drawable/below_calc" />

        <ImageView
            android:id="@+id/belowProdutos"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:contentDescription="@string/descFaixaProdutos"
            android:layout_marginTop="5dp"
            android:layout_weight="1"
            android:src="@drawable/below_produtos" />

    </LinearLayout>

</RelativeLayout>

问题是ScrollView外面的LinearLayout,最后是固定在底部的,而scroll放在后面。所以我需要 Scroll 是屏幕高度减去这个固定的 LinerLayout 高度减去一点边距。

我试过这个:

(...)
int scrollFInalHeight = scrollHeight - fixedMenuHeight - 10;

ViewGroup.LayoutParams param = new ViewGroup.LayoutParams(scrollStartWidth, scrollFInalHeight);
scroll.setLayoutParams(param);

但是当我开始这个活动时应用程序崩溃了。此 java 代码位于public void onWindowFocusChanged(boolean hasFocus)方法中。

有什么建议么?提前致谢!;)

4

3 回答 3

5

您需要设置高度

scroll_view.setLayoutParams(new RelativeLayout.LayoutParams(
                LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));

或者

scroll_view.setLayoutParams(new RelativeLayout.LayoutParams(
                LayoutParams.FILL_PARENT, 350));
于 2013-12-02T06:37:27.050 回答
4

@aNikeT 的答案是正确的,但使用它会更安全

ViewGroup.LayoutParams layoutParams = mDescriptionScrollView.getLayoutParams();
            layoutParams.height = scrollViewHeight;
于 2017-01-09T06:34:15.710 回答
3

你试过把

android:layout_above="@+id/menuFixo"

在你的滚动视图?

于 2013-09-02T20:33:06.747 回答