【问题标题】:Layout issue on bigger size screen device更大尺寸屏幕设备上的布局问题
【发布时间】:2014-01-11 21:18:53
【问题描述】:

我有 2 台设备。对于更大的屏幕尺寸,我的布局在底部有一个白色间隙。我将 Manisfest.xml 设计为屏幕配置问题:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mapcard"
android:versionCode="1"
android:versionName="1.0"
 >

<supports-screens
        android:smallScreens="true"
            android:normalScreens="true"
            android:largeScreens= "true"
            android:anyDensity="true"
    />
...

这是我遇到问题的布局。 Galaxy S2 工作正常,但 HTC 蝴蝶 S 布局更靠右对齐,底部出现白色间隙:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/sview" >

<RelativeLayout
android:id="@+id/rl"
android:layout_width="match_parent"
android:layout_height="461dp"
android:background="@drawable/mainpagebck"
android:gravity="clip_horizontal"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" >

<ImageView
    android:id="@+id/qrcodeview"
    android:layout_width="120dp"
    android:layout_height="105dp"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:src="@drawable/border"
    android:adjustViewBounds="true"
    android:scaleType="fitCenter" >
</ImageView>
 <ImageView
    android:id="@+id/logoview"
    android:layout_width="120dp"
    android:layout_height="105dp"
    android:layout_alignLeft="@+id/txtName"
    android:layout_alignParentTop="true"
    android:src="@drawable/border"
    android:adjustViewBounds="true"
    android:scaleType="fitCenter" />

<TextView
    android:id="@+id/txtqrcode"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/qrcodeview"
    android:layout_alignLeft="@+id/qrcodeview"
    android:layout_marginBottom="41dp"
    android:layout_marginLeft="32dp"
    android:text="QR Code"
    android:fitsSystemWindows="true"
    android:textAppearance="?android:attr/textAppearanceSmall" />

<TextView
    android:id="@+id/txtlogo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/txtqrcode"
   android:layout_marginBottom="41dp"
    android:layout_marginLeft="23dp"
    android:layout_toRightOf="@+id/linearLayout1"
    android:text="Logo/Photo"
    android:fitsSystemWindows="true"
    android:textAppearance="?android:attr/textAppearanceSmall" />

<ImageView
    android:id="@+id/location"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/qrcodeview"
    android:layout_alignParentTop="true"
    android:layout_toLeftOf="@+id/qrcodeview"
    android:layout_toRightOf="@+id/logoview"
    android:src="@drawable/location1" />



  <EditText
    android:id="@+id/txtName"
    android:layout_width="288dp"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/logoview"
    android:ems="10"
    android:hint="Full Name"
    android:capitalize="words"
    android:textColorHint="#262d35" />

  <EditText
    android:id="@+id/txtCompany"
    android:layout_width="288dp"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/txtName"
    android:ems="10"
    android:hint="Company"
    android:capitalize="characters"
    android:textColorHint="#262d35" />

  <EditText
    android:id="@+id/txtPhone"
    android:layout_width="288dp"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/txtCompany"
    android:ems="10"
    android:hint="Phone (Landline/Fax)"
    android:inputType="phone"
    android:textColorHint="#262d35" />

  <EditText
    android:id="@+id/txtMobile"
    android:layout_width="288dp"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/txtPhone"
    android:ems="10"
    android:hint="Mobile"
    android:inputType="phone"
    android:textColorHint="#262d35" />

 <EditText
    android:id="@+id/txtAddress"
    android:layout_width="288dp"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/txtMobile"
    android:ems="10"
    android:hint="Address"       
    android:capitalize="words"    
    android:textColorHint="#262d35" /> 


<EditText
    android:id="@+id/txtEmail"
    android:layout_width="288dp"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/txtAddress"
    android:ems="10"
    android:hint="E-mail"
    android:capitalize="none"
    android:inputType="textEmailAddress"
    android:textColorHint="#262d35" >


</EditText>

<EditText
    android:id="@+id/txtWebsite"
    android:layout_width="288dp"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/txtEmail"
    android:ems="10"
    android:hint="Website"
    android:capitalize="none"
    android:textColorHint="#262d35"
    android:inputType="textEmailAddress"
     />

<EditText
android:id="@+id/txtTitle"
android:layout_width="246dp"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/txtWebsite"
android:layout_alignParentRight="true"
android:layout_below="@+id/txtWebsite"
android:ems="10"
android:hint="Title"
android:capitalize="words"
android:textColorHint="#262d35" >


</EditText>

<LinearLayout
android:id="@+id/linearlayout2"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_alignParentBottom="true"
android:layout_below="@+id/txtTitle" >

<Button
    android:id="@+id/save"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="140dp"
    android:layout_height="wrap_content"
    android:text="Save" />

 <Button
        android:id="@+id/clear"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="148dp"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:text="Clear" />

</LinearLayout>
</RelativeLayout>

屏幕截图:

第一张图片上的保存和清除按钮下方有白色间隙,上面的文字没有正确对齐。我该如何解决这个问题?谢谢你的建议。

【问题讨论】:

  • 能否请您展示两台设备的屏幕截图?另外,顺便说一句,清单仅说明应用程序将支持哪些屏幕尺寸,而不是它在这些设备上的执行方式。

标签: android android-layout android-xml dpi android-screen-support


【解决方案1】:

使用match_parent 表示高度。基本上,您为相对布局指定了 461dp 的最大高度,我想不出程序的主布局应该有指定高度的情况,通常您想使用 fill_parent。

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/sview" >

<RelativeLayout
android:id="@+id/rl"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/mainpagebck"
android:gravity="clip_horizontal"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" >

此外,您在视图中不断使用像素高度,您可能不想这样做。这会导致每台设备出现轻微的布局问题,并且没有人为每个屏幕布局构建布局(至少,我不知道......)

【讨论】:

  • 这对我没有帮助。两种设备都没有变化。
  • 我怀疑您需要删除整个文档中的高度列表。
  • 你能解释一下吗?我应该删除 android:layout_height="match_parent" 还是 scrollView?
  • 在其他视图中,如ImageViews
  • 但这只发生在一台设备上。如果那是布局问题,我认为它会重复所有。我很困惑,认为这是关于配置不同的屏幕。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-04
  • 2021-12-15
相关资源
最近更新 更多