문제

이것을 구현하는 방법에 대한 간단한 질문입니다. 화면 하단에 버튼이 있고 화면 크기가 더 크면 더 많은 버튼이 추가됩니다.

예를 들어, 작은 화면 크기에서는 하단에 4-5 개의 버튼이있을 수 있지만 태블릿이나 이와 유사한 버튼을 실행하면 20 개의 버튼이있을 수 있습니다.

제안이 있습니까? 스크롤 할 수는 없으며 버튼으로 레이아웃을 동적으로 채워야합니다.

감사.

도움이 되었습니까?

해결책

레이아웃 하단에 버튼을 넣으려면 레이아웃에 이와 같은 작업을 수행하십시오.

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main_layout">
    <LinearLayout
        android:layout_height="wrap_content"
        android:id="@+id/button_layout"
        android:layout_alignParentBottom="true"
        android:layout_width="fill_parent"
        android:gravity="center">
        <Button
            android:id="@+id/Button01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button 1"></Button>
        <Button
            android:id="@+id/Button02"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button 2"></Button>
        <Button
            android:id="@+id/Button03"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button 3"></Button>
    </LinearLayout>
    <FrameLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@+id/button_layout"
        android:id="@+id/content">
        <ListView
            android:id="@+id/ListView01"
            android:layout_height="fill_parent"
            android:layout_width="fill_parent"></ListView>
    </FrameLayout>
</RelativeLayout>

화면 크기에 따라 몇 개의 버튼이 표시 되려면 여러 화면 크기에 대해 별도의 레이아웃을 구현해야합니다.

http://developer.android.com/guide/practices/screens_support.html

다른 팁

자신의 사용자 정의 레이아웃 클래스를 만들고 싶은 것처럼 들립니다. 화면 공간이 부족할 때까지 선형 층을 채우거나 채우십시오.

픽셀의 버튼 크기를 알고 있다면 DisplayMetrics를 사용하여 화면의 크기를 얻을 수 있으며 할당 된 공간에 몇 개의 버튼이 맞는지 계산할 수 있습니다.

     DisplayMetrics metrics = new DisplayMetrics();
     getWindowManager().getDefaultDisplay().getMetrics(metrics);

Metrics.heightpixels givs 픽셀 메트릭의 절대 높이.

Metrics.density는 스케일링 목적으로 논리적 밀도를 제공합니다

여기를 봐: http://developer.android.com/reference/android/util/displaymetrics.html

그런 다음 같은 일을하십시오

do{
    Button button=new Button(context);
    button.setText("yada yada")
    button.allYoursettings....
    .
    .
    LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(
                    LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    LinearLayout layout=(LinearLayout) findViewById(R.id.yourlayout);
    layout.addView(button,p);
} while(havespaceleft);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top