【问题标题】:getting a layout to fit some device screen size in android在android中获得适合某些设备屏幕尺寸的布局
【发布时间】:2015-08-21 14:41:52
【问题描述】:

我正在使用如下所示的布局。

问题

1 - 它在大多数设备上都能正常工作,但我无法在

上看到完整的布局
- Nexus 5, Sony Xperia Z1, and Galaxy S2 

在上述这些设备中,我最多只能看到 Gridview 网格。我看不到下面的 EditText 和 Button。

2 - 布局已经有一个 gridview,所以我不能使用 ScrollView 在较小的屏幕设备中查看整个布局。因此上述问题没有解决。

3 - 我的 GridView 中有一个 Imageview。当我尝试缩放 Imageview 时,它仍然在 Imageview 顶部显示图像,即使我将比例设置为 CENTRE_INSIDE。

请帮助我将我的布局适应小屏幕设备,如 Nexus 5、三星 Galaxy S2,以及大屏幕设备,如索尼 Xperia Z1。

请告诉我在我的布局 xml 文件中哪里做错了。

注意-要检查的重要块是 Gridview 块和按钮的最后一行线性布局。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<include
    android:id="@+id/CustomTitle"
    layout="@layout/custom_title" />
<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/CustomTitle"
     >

    <RelativeLayout
        android:id="@+id/Title_RelativeLayout"
        android:layout_width="fill_parent"
        android:layout_below="@id/FavoritesViewRealtiveLayout"
        android:layout_height="wrap_content"
        android:layout_marginBottom="2dip"

        android:layout_marginTop="2dip" >

     <TextView
            android:id="@+id/device_detail"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"             
         android:layout_alignParentLeft="true"
         android:layout_centerHorizontal="true"
         android:text="@string/Fav_Edit_1"
         android:textColor="@android:color/white"
         android:textSize="17sp" />

    <RadioGroup
        android:id="@+id/radioGroup1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/device_detail"
        android:orientation="horizontal" >

    <RadioButton
        android:id="@+id/radioButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"            

        android:text="Camera/Encoder" 
        android:checked="true" />

    <RadioButton
        android:id="@+id/radioButton2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="15dp"
        android:text="NVR/DVR" 
        />

  </RadioGroup>

    <TextView
                android:id="@+id/AddDevice_Name_Bar_TextView"
                android:layout_width="fill_parent"
                android:layout_height="0.1dip"
                android:layout_below="@+id/radioGroup1"
                android:background="#ffffff" />


    </RelativeLayout>
    <RelativeLayout
        android:id="@+id/Date_RelativeLayout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/Title_RelativeLayout"
        >

        <TextView
            android:id="@+id/Layout_detail"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"             
         android:layout_alignParentLeft="true"
         android:layout_centerHorizontal="true"
         android:text="@string/Fav_Edit_2"
         android:textColor="@android:color/white"
         android:textSize="17sp" />

                   <Button
             android:id="@+id/division_4_Button"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_alignParentLeft="true"
             android:layout_marginLeft="5dp"
             android:layout_marginTop="10dp"
             android:layout_below="@+id/Layout_detail"
             android:background="@drawable/div4_layout_mode_selector"
             android:textColor="@drawable/textview_color_selector" />
         <Button
                android:id="@+id/division_9_Button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="50dip"
                android:layout_marginTop="10dp"
                android:layout_below="@+id/Layout_detail"
                android:layout_alignParentLeft="true"
                android:background="@drawable/div9_layout_mode_selector"
                android:textColor="@drawable/textview_color_selector" />


       <Button
                android:id="@+id/division_delete_Button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="50dip"
                android:layout_marginTop="10dp"
                android:layout_below="@+id/Layout_detail"
                android:layout_alignParentRight="true"
                android:layout_marginRight="5dp"
                android:background="@drawable/div_delete_selector"
                android:textColor="@drawable/textview_color_selector" />
    </RelativeLayout>

    <GridView
        android:id="@+id/Favorite_GridView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_below="@id/Date_RelativeLayout"
       android:verticalSpacing="10dp"
       android:horizontalSpacing="10dp"   
        android:listSelector="@drawable/gridview_norecode_selector"
        android:numColumns="3"            

      />
    <TextView
                android:id="@+id/AddDevice_Name_Bar_TextView"
                android:layout_width="fill_parent"
                android:layout_height="0.1dip"
                android:layout_marginTop="5dp"
                android:layout_below="@+id/Favorite_GridView"
                android:background="#ffffff" />

    <RelativeLayout
        android:id="@+id/Ti_RelativeLayout"
        android:layout_width="fill_parent"
        android:layout_below="@id/AddDevice_Name_Bar_TextView"
        android:layout_height="wrap_content"
        android:layout_marginBottom="2dip"            
        android:layout_marginTop="2dip" >

     <TextView
            android:id="@+id/device_detail"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"             
         android:layout_alignParentLeft="true"
         android:layout_centerHorizontal="true"
         android:text="@string/Fav_Edit_3"
         android:textColor="@android:color/white"
         android:textSize="17sp" />

  <EditText
                android:id="@+id/AddDevice_Name_EditText"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_below="@+id/device_detail"
                android:ellipsize="end"
                android:hint="@string/Fav_Edit_4"
                android:inputType="textUri"
                android:maxLength="100"
                android:singleLine="true"
                android:text="" />

     <LinearLayout
      android:id="@+id/Button_Layout"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"

      android:layout_marginTop="1dp"
      android:layout_below="@id/AddDevice_Name_EditText"
      android:background="@android:color/darker_gray"
      android:orientation="horizontal" >
    <Button
         android:id="@+id/AddDevice_Save_Btn"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_margin="5dip"
         android:layout_weight="1"
         android:text="@string/Save" />

</LinearLayout>

    </RelativeLayout>

</RelativeLayout>

我还附上了 GridView xml 文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/grid_color_selector" >
<ImageView
    android:id="@+id/image"
   android:layout_width="fill_parent"
    android:layout_height="wrap_content"      
   />   

<TextView
    android:id="@+id/Day_TextView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/gridview_line_norecord"
    android:gravity="center"
    android:textColor="@android:color/white"
    android:textSize="14sp"        
    android:text="Hello" />
</RelativeLayout>

【问题讨论】:

    标签: android android-layout gridview


    【解决方案1】:

    元素低于GridView 存在一个根本问题。通常你无法控制有多少元素进入GridView,所以如果你使用wrap_content作为它的高度,它会扩展以容纳所有的项目。

    在正常情况下,您将使用高度为 match_parent、固定 (x dp) 或成比例(加权 - 实际上可能仍然是 match_parent 但包含在加权容器中)的 GridView

    由于您必须在其下方显示项目,因此第一个选择并不是真正的选择。因此,您可以选择其他选项之一。

    【讨论】:

    • 感谢您的评论。
    猜你喜欢
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多