【问题标题】:Screen layout disturbed in Tablet. Works fine on Tablet Emulator and on 5" android phone平板电脑中的屏幕布局受到干扰。在平板电脑模拟器和 5" 安卓手机上运行良好
【发布时间】:2016-11-05 03:13:54
【问题描述】:

我有一个屏幕,其中包含多个输入字段和底部居中的两个按钮。在手机上看起来像:

Phone view (looks same on tablet emulator)

但在平板电脑上看起来如下所示:

On tablet device

我需要它在手机中的缩放版本。像所有的视图(文本输入布局、按钮、字体大小、提示)一样,一切都应该看起来相同,但在大屏幕尺寸上更大。 它应该只是在大屏幕上缩小并与手机上的外观保持一致。

有没有办法做到这一点?

我已经给出了 dp 中的所有维度,并使用 LinearLayout 作为 ViewGroup。 minSDKVersion 为 19。

我的代码粘贴如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/header_left_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="60dp"
    android:orientation="vertical"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    android:weightSum="100.0"
    tools:context=".OutletDetailsActivity"
    tools:showIn="@layout/activity_outlet_details"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:background="@drawable/app_bg">


    <com.admin.view.CustomFontTextView
        android:id="@+id/registerOutletHeader"
        android:layout_weight="6.0"
        android:layout_gravity="center"
        style="@style/screenHeader"
        />

    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/ScrollViewRegisterBox"
        android:layout_width="wrap_content"
        android:layout_weight="75.0"
        android:layout_marginLeft="@dimen/activity_horizontal_margin"
        android:layout_marginRight="@dimen/activity_horizontal_margin"
        android:layout_gravity="center"
        android:layout_height="0dp"
        android:scrollbarSize="3dp"
        android:scrollbarThumbVertical="@color/floating_line">

        <LinearLayout
            android:layout_width="300dp"
            android:layout_height="wrap_content"
            android:paddingBottom="@dimen/activity_vertical_margin"
            android:paddingLeft="@dimen/activity_horizontal_margin"
            android:paddingRight="@dimen/activity_horizontal_margin"
            android:orientation="vertical"
            android:paddingTop="@dimen/register_box_top_margin"
            android:id="@+id/registerContainerBox"
            >

            <android.support.design.widget.TextInputLayout
                android:id="@+id/inputOutletNameLayout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:layout_marginTop="10dp">

                <com.admin.view.CustomFontEditText
                    android:id="@+id/inputOutletNameText"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/outlet_name"
                    android:inputType="text"
                    android:theme="@style/inputText"/>
            </android.support.design.widget.TextInputLayout>

            <android.support.design.widget.TextInputLayout
                android:id="@+id/inputaddressLine1Layout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:layout_marginTop="15dp">

                <com.admin.view.CustomFontEditText
                    android:id="@+id/inputaddressLine1Text"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/address_line1"
                    android:inputType="textPostalAddress"
                    android:theme="@style/inputText"/>
            </android.support.design.widget.TextInputLayout>

            <android.support.design.widget.TextInputLayout
                android:id="@+id/inputaddressLine2Layout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:layout_marginTop="15dp">

                <com.admin.view.CustomFontEditText
                    android:id="@+id/inputaddressLine2Text"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/address_line2"
                    android:inputType="textPostalAddress"
                    android:theme="@style/inputText"/>
            </android.support.design.widget.TextInputLayout>

            <android.support.design.widget.TextInputLayout
                android:id="@+id/inputPinCodeLayout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:layout_marginTop="15dp">

                <com.admin.view.CustomFontEditText
                    android:id="@+id/inputPinCodeText"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/pin_code"
                    android:inputType="number"
                    android:maxLength="6"
                    android:theme="@style/inputText" />
            </android.support.design.widget.TextInputLayout>

            <android.support.design.widget.TextInputLayout
                android:id="@+id/inputEmailLayout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:layout_marginTop="15dp">

                <com.admin.view.CustomFontEditText
                    android:id="@+id/inputEmailText"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/email_id"
                    android:inputType="textEmailAddress"
                    android:theme="@style/inputText"/>
            </android.support.design.widget.TextInputLayout>

            <android.support.design.widget.TextInputLayout
                android:id="@+id/inputPhoneNumberLayout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:layout_marginTop="15dp">

                <com.admin.view.CustomFontEditText
                    android:id="@+id/inputPhoneNumberText"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/mobile_number"
                    android:inputType="number"
                    android:maxLength="10"
                    android:theme="@style/inputText"/>
            </android.support.design.widget.TextInputLayout>

        </LinearLayout>
    </ScrollView>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginTop="5dp"
        android:layout_weight="19.0"
        android:weightSum="6">

        <com.admin.view.CustomFontButton
            android:id="@+id/reset_button"
            style="@style/formButton"
            android:layout_marginLeft="60dp"
            android:layout_weight="1"
            android:text="Reset"
            android:layout_gravity="center"
            />

        <com.admin.view.CustomFontButton
            android:id="@+id/registerOutletNextButton"
            style="@style/formButton"
            android:layout_marginLeft="30dp"
            android:layout_weight="1"
            android:text="Register"
            android:layout_gravity="center" />
    </LinearLayout>`enter code here`
</LinearLayout>

【问题讨论】:

    标签: android android-layout tablet


    【解决方案1】:

    这不是 Android 的工作方式。平板电脑的视图是正确的——那里有足够的空间来放置所有东西,所以一切都显示出来了。你实际上不希望它只是缩小 - 东西看起来很丑陋和像素化。我建议你阅读https://developer.android.com/guide/practices/screens_support.html

    另请注意,它在所有手机上的外观并不相同。我有一部 6 英寸的手机 - 它看起来介于平板电脑和您看到的手机视图之间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-09
      • 1970-01-01
      • 2011-10-31
      • 1970-01-01
      相关资源
      最近更新 更多