2014-04-18 5 views
6

2 개의 레이아웃이 ScrollView 안에 있어야합니다. 첫 번째 레이아웃은 전체 화면에 있어야하고 두 번째 레이아웃은 첫 번째 레이아웃 아래에 있어야합니다. 활동이 시작되면 두 번째 레이아웃을 볼 수 없습니다. 두번째 레이아웃은 스크롤 화면 후에 볼 수 있습니다. 더 나은 이해를 위해서 제 이미지를보십시오.스크롤보기의 전체 화면 레이아웃

enter image description here

답변

9

레이아웃 코드 :`

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:padding="15dp" > 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:id="@+id/layout1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" > 


    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/layout2" 
     android:layout_width="match_parent" 
     android:layout_height="200dp" 
     android:orientation="vertical" > 

     <!-- this layout can be any height you want --> 

    </LinearLayout> 
</LinearLayout> 

</ScrollView>` 

장치의 화면 높이 가져 오기 : Point size = new Point(); getWindowManager().getDefaultDisplay().getSize(size); int screenHeight = size.y;

찾기를있는 LinearLayout에게 : LinearLayout layout = (LinearLayout)findViewById(R.id.layout1);

을 기반으로 레이아웃의 높이를 설정합니다 이전 화면 높이 : LayoutParams params = layout.getLayoutParams(); params.height = screenHeight - getStatusBarHeight();

완료. onCreate 메서드에서 이러한 메서드를 모두 호출해야합니다.

희망이 도움이됩니다.

+0

감사합니다. 처음으로 완벽하게 작동합니다! 다른 사람들이이 질문을 읽도록이 코드를 강조하고 싶습니다. [상태 표시 줄 높이 얻기] (http://mrtn.me/blog/2012/03/17/get-the-height-of-the-status -bar-in-android /)를 사용합니다. 그런 다음 코 드 라인을 변경하십시오. params.height = screenHeight - getStatusBarHeight() – Matwosk

+0

다행입니다. –

관련 문제