[java] ListView 및 버튼이있는 안드로이드 레이아웃



2 Answers

나이가 들어도 같은 문제가있었습니다.

ListView를 버튼 위에 유지하면서 목록이 길 때 덮어 버리지 않도록하는 방법은 ListView에 android : layout_weight = "1.0"을 설정하는 것입니다. 버튼의 layout_weight를 원래대로 유지하도록 버튼의 설정을 해제하십시오. 그렇지 않으면 버튼의 크기가 조절됩니다. LinearLayout과 함께 작동합니다.

Android ApiDemos에는 ApiDemos/res/layout/linear_layout_9.xml

Question

좋아,이 특정 레이아웃은 나에게 짜증나. 그리고 listview를 가지는 방법을 찾지 못했을 것입니다. 하단에 일련의 버튼이있어 목록보기가 버튼 상단으로 뻗어 있지 않으므로 버튼이 항상 화면 하단에 맞춰집니다. 여기 내가 원하는 걸 :

죽은 ImageShack 링크가 제거되었습니다.

그것은 그렇게 쉬운 것처럼 보입니다.하지만 제가 시도한 모든 것은 실패했습니다. 어떤 도움이 필요합니까?

다음은 현재 코드입니다.

    RelativeLayout container = new RelativeLayout(this);
    container.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));

    //** Add LinearLayout with button(s)

    LinearLayout buttons = new LinearLayout(this);

    RelativeLayout.LayoutParams bottomNavParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    bottomNavParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
    bottomNavParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
    buttons.setLayoutParams(bottomNavParams);


    ImageButton newLayer = new ImageButton(this);
    newLayer.setImageResource(R.drawable.newlayer);
    newLayer.setLayoutParams(new LinearLayout.LayoutParams(45, LayoutParams.FILL_PARENT));
    buttons.addView(newLayer);

    container.addView(buttons);

    //** Add ListView

    layerview = new ListView(this);

    RelativeLayout.LayoutParams listParams = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
    listParams.addRule(RelativeLayout.ABOVE, buttons.getId());

    layerview.setLayoutParams(listParams);

    container.addView(layerview);



가장 좋은 방법은 listview 아래에 버튼을 설정하는 상대 레이아웃입니다. 이 예제에서 단추는 같은 크기로 나란히 두는 것이 더 쉽기 때문에 선형 레이아웃으로되어 있습니다.

<RelativeLayout android:id="@+id/RelativeLayout01" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent">

<ListView android:id="@+id/ListView01" 
android:layout_alignParentTop="true"
android:layout_width="fill_parent" 
android:layout_height="fill_parent">
</ListView>

<LinearLayout android:id="@+id/LinearLayout01" 
android:layout_below="@+id/ListView01" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_alignParentBottom="true">
<Button android:id="@+id/ButtonJoin" 
android:text="Join"
android:layout_width="fill_parent" 
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_alignParentBottom="true">
</Button>
<Button android:id="@+id/ButtonJoin" 
android:layout_alignRight="@id/ButtonCancel" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Cancel"
android:layout_alignParentBottom="true">
</Button>
</LinearLayout>

</RelativeLayout>



이게 효과가있다. 목록보기 위에 단추가 있으려면 다른 선형 레이아웃 안에 단추를 넣으십시오.

<LinearLayout> main container // vertical

<LinearLayout> scrollview must be contained in a linear layout //vertical - height to fill parent

    <ScrollView> set the height of this to fill parent

        <ListView> will be contained in the scrollview
        </ListView>

    </ScrollView>

</LinearLayout>

<LinearLayout> //horizontal - height to wrap content

<Button>

</Button>

</LinearLayout>

</LinearLayout>



Related