2016-08-18 19 views
0

我正在使用相对布局来复制fab锚定的效果。 以下是我的布局代码。 在不同的android版本中使用相对布局的对齐问题

<LinearLayout 
     android:layout_marginTop="28dp" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 

     <LinearLayout 
      android:id="@+id/bottom_sheet12" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="#ffffff" 
      android:orientation="vertical"> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center_horizontal" 
       android:orientation="horizontal"> 

       <LinearLayout 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_weight="1" 
        android:orientation="vertical" 
        android:paddingRight="15dp" 
        android:paddingBottom="10dp" 
        android:paddingLeft="15dp" 
        android:paddingTop="10dp"> 

        <TextView 
         android:id="@+id/textView102_5" 
         android:layout_width="250dp" 
         android:layout_height="wrap_content" 
         android:singleLine="true" 
         android:text="Opera House" 
         android:textSize="18sp" 
         android:textStyle="bold" /> 

        <TextView 
         android:id="@+id/textView103_5" 
         android:layout_width="250dp" 
         android:singleLine="true" 
         android:layout_height="wrap_content" 
         android:layout_marginBottom="5dp" 
         android:text="Valet zone" 
         android:textColor="#bdbdbd" 
         android:textSize="12sp" /> 

        <LinearLayout 
         android:id="@+id/layout_status" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:layout_gravity="center_horizontal" 
         android:layout_marginBottom="5dp" 
         android:orientation="horizontal"> 

         <TextView 
          android:id="@+id/textView118" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:text="erwerwerewr" 
          android:textSize="12sp" /> 

         <TextView 
          android:id="@+id/textView106_5" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:text="abcd" 
          android:textSize="12sp" 
          android:textStyle="bold" /> 

        </LinearLayout> 

        <LinearLayout 

         android:id="@+id/layout_hours" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:layout_gravity="center_horizontal" 
         android:orientation="horizontal"> 

         <TextView 
          android:id="@+id/textView120" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:text="Hours: " 
          android:textSize="12sp" /> 

         <TextView 
          android:id="@+id/textView107_5" 
          android:layout_width="match_parent" 
          android:layout_height="wrap_content" 
          android:text="9:00 AM - 9:00 PM" 
          android:textSize="12sp" /> 

        </LinearLayout> 
       </LinearLayout> 

      </LinearLayout> 

      <View 
       android:layout_width="match_parent" 
       android:layout_height="1dp" 
       android:layout_gravity="center_horizontal" 
       android:background="#e0e0e0" /> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:gravity="center" 
       android:orientation="horizontal"> 

       <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_weight="1" 
        android:gravity="center" 
        android:orientation="vertical"> 

        <TextView 
         android:textStyle="bold" 
         android:id="@+id/textView109_5" 
         android:layout_width="match_parent" 
         android:layout_height="50dp" 
         android:layout_marginLeft="8dp" 
         android:layout_marginRight="8dp" 
         android:drawableLeft="@drawable/ic_navigation_black_24dp" 
         android:gravity="center" 
         android:layout_gravity="fill" 
         android:text="abcd" 
         android:textSize="12sp" /> 
       </LinearLayout> 

       <View 
        android:layout_width="1dp" 
        android:layout_height="50dp" 
        android:background="#e0e0e0" /> 

       <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_weight="1" 
        android:gravity="center" 
        android:orientation="vertical"> 

        <TextView 
         android:textStyle="bold" 
         android:id="@+id/textView111_5" 
         android:layout_width="match_parent" 
         android:layout_height="50dp" 
         android:layout_marginLeft="8dp" 
         android:layout_marginRight="8dp" 
         android:drawableLeft="@drawable/support_valet" 
         android:gravity="center" 
         android:layout_gravity="fill" 
         android:text="abcd" 
         android:textSize="12sp" /> 
       </LinearLayout> 

       <View 
        android:layout_width="1dp" 
        android:layout_height="50dp" 
        android:background="#e0e0e0" /> 

       <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_weight="1" 
        android:gravity="center" 
        android:orientation="vertical"> 

        <TextView 
         android:textStyle="bold" 
         android:id="@+id/textView129_5" 
         android:layout_width="match_parent" 
         android:layout_height="50dp" 
         android:layout_marginLeft="8dp" 
         android:layout_marginRight="8dp" 
         android:drawableLeft="@drawable/ic_assignment_black_24dp" 
         android:gravity="center" 
         android:layout_gravity="fill" 
         android:text="abcd" 
         android:textSize="12sp" /> 
       </LinearLayout> 
      </LinearLayout> 

     </LinearLayout> 
    </LinearLayout> 


    <LinearLayout 
     android:layout_width="100dp" 
     android:layout_height="78dp" 
     android:orientation="vertical" 
     android:layout_alignParentRight="true" 
     android:gravity="center"> 
     <android.support.design.widget.FloatingActionButton 
      android:id="@+id/fab5" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      app:fab_size="normal" 
      android:src="@drawable/ic_flag_white_24dp" 
      app:backgroundTint="@color/theme_color" /> 
     <TextView 
      android:paddingRight="1dp" 
      android:paddingLeft="1dp" 
      android:layout_gravity="center" 
      android:gravity="center" 
      android:id="@+id/textView122" 
      android:layout_width="wrap_content" 
      android:layout_height="12dp" 
      android:layout_marginTop="10dp" 
      android:layout_weight="1" 
      android:text="Fab lable" 
      android:textColor="@color/theme_color" 
      android:textSize="10sp" 
      android:textStyle="bold" /> 
    </LinearLayout> 

</RelativeLayout> 

这是我的主活动布局:

<android.support.design.widget.CoordinatorLayout xmlns:fab="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/coordinate_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <RelativeLayout 
     android:id="@+id/relativeLayout1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:background="#0d4b70"> 

     <android.support.design.widget.AppBarLayout 
      android:id="@+id/actionbar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:theme="@style/MyMaterialTheme.AppBarOverlay"> 

      <include layout="@layout/toolbar_lable" /> 

     </android.support.design.widget.AppBarLayout> 

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:tools="http://schemas.android.com/tools" 
      android:id="@+id/rl_map_container" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_below="@+id/actionbar" 
      android:background="#0d4b70"> 

      <fragment 
       android:id="@+id/map" 
       class="io.plite.customer.activities.MainActivity$CustomMapFragment" 
       android:layout_width="match_parent" 
       android:layout_height="fill_parent" 
       android:layout_alignParentTop="true" 
       tools:layout="@layout/abc_action_bar_title_item" /> 

      <ProgressBar 
       style="@style/Base.Widget.AppCompat.ProgressBar.Horizontal" 
       android:id="@+id/smoothprogressbar" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentTop="true" 
       android:indeterminate="true" 
       android:visibility="gone" /> 
      <!--app:spb_colors="@array/colors"--> 
      <RelativeLayout 
       android:id="@+id/rlSearch" 
       android:layout_width="fill_parent" 
       android:layout_height="50dp" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentRight="true" 
       android:layout_margin="10dp" 
       android:background="@drawable/shadow" 
       android:visibility="visible"> 
       <ImageView 
        android:layout_marginLeft="15dp" 
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content" 
        android:src="@drawable/ic_search_black_24dp" 
        android:layout_centerVertical="true" 
        android:layout_alignParentLeft="true" 
        android:layout_alignParentStart="true"> 
        </ImageView> 
       <TextView 
        android:gravity="center" 
        android:layout_marginLeft="45dp" 
        android:layout_marginRight="45dp" 
        android:id="@+id/svSearch" 
        android:textSize="14sp" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_centerVertical="true" 
        android:layout_alignParentLeft="true" 
        android:layout_alignParentStart="true" /> 
       <!--<SearchView 
        android:id="@+id/svSearch" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:focusable="false" 
        android:iconifiedByDefault="false" />--> 
      </RelativeLayout> 
      <TextView 
       android:id="@+id/countuptimer" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentTop="true" 
       android:layout_centerHorizontal="true" 
       android:text="22:10:1991" 
       android:textColor="@color/theme_color" 
       android:textSize="50sp" 
       android:visibility="invisible" /> 
      <FrameLayout 
       android:id="@+id/fl_center" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerHorizontal="true" 
       android:layout_centerInParent="true" 
       android:layout_centerVertical="true"> 

       <ImageView 
        android:id="@+id/imageView1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_centerHorizontal="true" 
        android:layout_centerInParent="true" 
        android:layout_centerVertical="true" 
        android:layout_gravity="center" 
        android:gravity="center" 
        android:src="@drawable/flag_pickup" 
        android:visibility="gone" /> 
      </FrameLayout> 
      <Chronometer 
       android:id="@+id/chronometer" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:visibility="gone" /> 

      <android.support.design.widget.FloatingActionButton 
       android:id="@+id/imgMyLocation" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:backgroundTint="@android:color/white" 
       android:background="@color/white" 
       android:elevation="10dp" 
       android:src="@drawable/search_current_location" 
       app:borderWidth="0dp" 
       app:fabSize="mini" 

       android:layout_alignParentBottom="true" 
       android:layout_alignParentRight="true" 
       android:layout_marginBottom="228dp" 
       android:layout_marginRight="27dp" /> 

      <ImageView 
       android:id="@+id/image_shadow" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerHorizontal="true" 
       android:layout_centerVertical="true" 
       android:src="@drawable/drop_pin_shadow" 
       android:visibility="gone" /> 

      <FrameLayout 
       android:id="@+id/design_bottom_sheet" 
       style="?attr/bottomSheetStyle" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_alignParentBottom="true" 
       android:layout_alignParentLeft="true" 
       android:layout_gravity="center_horizontal" /> 

      <include 
       layout="@layout/tab_switch" 
       android:layout_width="match_parent" 
       android:layout_height="40dp" 
       android:layout_alignParentBottom="true"/> 
     </RelativeLayout> 

    </RelativeLayout> 

    <include layout="@layout/new_bottom_sheet_linear"/> 

</android.support.design.widget.CoordinatorLayout> 

<android.support.design.widget.NavigationView 
    android:id="@+id/nav_view" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:fitsSystemWindows="true" 
    app:headerLayout="@layout/nav_header_main" 
    app:menu="@menu/activity_main_drawer" /> 

我正在与包括相对布局上方的片段替换在主活性的FrameLayout。

这是怎么看我的摩托G2(6.0)

This is how it looks in my Moto g2 (6.0)

这是怎么看起来Micromax的帆布硝基 This is how it looks in Micromax canvas nitro (4.4.2)

走线完全消失在Micromax帆布硝基。我也尝试过与三星Galaxy S dous(4.2.2),得到了相同的布局问题。所以我的问题是我如何改变我的布局,以适应两个版本?

回答

1

您可以指定不同的布局文件(并将它们放置在不同的资源文件夹中)以支持不同版本的Android。

您可以命名您的资源文件夹,按版本号

/res/layout-v11 
/res/values-v13 

有关API级别的详情,请参阅this

在代码中,您可以检查API版本并确定是否显示某些高级功能。

private void setUpActionBar() { 
    // Make sure we're running on Honeycomb or higher to use ActionBar APIs 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
     ActionBar actionBar = getActionBar(); 
     actionBar.setDisplayHomeAsUpEnabled(true); 
    } 
} 
+0

但是,如何更改我的卡布局以适应两个版本?您也可以看到当前位置fab按钮的对齐方式与fab按钮不一致。我怎样才能摆脱这种行为 – Victor