模拟器与Android Studio渲染器

时间:2016-02-06 14:23:18

标签: android android-layout android-studio android-layout-weight

下面是XML代码和截图 总结:

  • weightSum = 100
  • 的一个父级LinearLayout
  • 一个孩子的LinearLayout layout_weight = 25
  • 一个孩子的LinearLayout layout_weight = 75

结果:

  • 在Android Studio布局渲染器中,子比例正常(25:75)
  • 在模拟器中,孩子之间的比例不行(显然不是25:75)

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:weightSum="100">
    
        <LinearLayout
            android:background="@color/md_orange_600"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="25"
            android:layout_gravity="center_horizontal">
        </LinearLayout>
    
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_gravity="center_horizontal"
            android:layout_margin="@dimen/default_separator"
            android:background="@color/md_green_400"
            android:layout_weight="75">
        </LinearLayout>
    
    </LinearLayout>
    

resulting screenshot

一些注意事项:

  • 两个孩子的layout_height为0dp(建议用于权重)
  • 我为背景着色,以便区域分配可见

1 个答案:

答案 0 :(得分:1)

找到根本问题:

事实证明,我的主要活动布局有一个[thumbnail] This should stay here on a page 作为主要容器。

CoordinatorLayout会像CoordinatorLayout一样放置子项,因此我的FrameLayout和主片段容器(AppBarLayout)重叠。 我把它们都封装成垂直方向的FrameLayout,现在它们不会重叠。

推论,对于开发人员来说我的2美分:在不理解其真正原因的情况下绕过问题是很诱人的(我可以在我的片段上添加LinearLayout并将其向下移动&#34;)但最终,在绕过你之后绕过你最终了解你自己的应用程序越来越少。总是希望了解您遇到的问题的真正原因,那么解决方案也将是真实的。