سؤال

مجرد سؤال سريع حول كيفية استمرار تنفيذ هذا. أريد أن أكون هناك أزرار في الجزء السفلي من الشاشة، ولكن إذا كان حجم الشاشة أكبر، فسيتم إضافة المزيد من الأزرار.

على سبيل المثال، عند حجم شاشة صغيرة، قد يكون هناك 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.

نصائح أخرى

يبدو أنك تريد إنشاء فئة تخطيط مخصصة الخاصة بك. هذا أو مجرد ملء LINEARLAYOUT (على سبيل المثال) حتى تنفد مساحة الشاشة.

إذا كنت تعرف حجم الأزرار الخاصة بك في البكسل، فيمكنك استخدام أجهزة العرض للحصول على أبعاد الشاشة ثم احسب عدد الأزرار التي ستناسب مساحةك المخصصة.

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

المقرري .HEightpixels Givs الارتفاع المطلق في مقر البكسلs.ydpi يعطي البكسلات الفيزيائية الدقيقة لكل بوصة من الشاشة

والتقييم. يعطي الكثافة المنطقية لأغراض التحجيم

انظر هنا: http://developer.android.com/Reference/android/util/displaymentss.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