Reputation: 789
I am using relative layout to duplicate the effect of fab anchoring. Following is my code for the layout.
<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>
This is my main activity layout:
<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" />
I am replacing the framelayout in the main activity with the fragment consisting of above relative layout.
This is how it looks in my Moto g2 (6.0)
This is how it looks in Micromax canvas nitro
The alignment is totally gone in Micromax canvas nitro. I have also tried with Samsung Galaxy S dous (4.2.2), got the same layout issue.So my question is how can i change my layout to suit both the versions?
Upvotes: 0
Views: 93
Reputation: 1121
You can specify different layout files (and place them in different resource folders) to support different versions of Android.
You can name your resource folders to as per the version number
/res/layout-v11
/res/values-v13
For more details regarding API levels, refer this.
In code, you can check the API version and can determine whether to show some advanced features.
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);
}
}
Upvotes: 1