Good day i have an app with bottom sheet behavior support.No matter what i have tried,the bottom sheet will not show the elements inside it on first initial show of it.The second time the same code triggers,the bottom sheet shows the element.This is happening with both:dynamically added views and listview as well.Here is my xml constructed for bottom sheet.
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="brijhelpline.testproject.MapsActivity" />
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="100dp"
android:alpha="0.9"
android:background="@drawable/gradient">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/settings"
android:indeterminate="false"
android:visibility="gone" />
<ImageView
android:id="@+id/userIcon"
android:layout_width="38dp"
android:layout_height="38dp"
android:layout_alignParentLeft="true"
android:layout_marginTop="13dp"
android:background="@drawable/user" />
<ImageView
android:id="@+id/settings"
android:layout_width="38dp"
android:layout_height="38dp"
android:layout_alignParentRight="true"
android:layout_marginRight="3dp"
android:layout_marginTop="10dp"
android:background="@drawable/settings_icon" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="Fuel Buddy"
android:textColor="#ffffff"
android:textSize="20sp" />
</RelativeLayout>
</android.support.v7.widget.Toolbar>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/toolbar"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:background="@drawable/searc_layout">
<ImageView
android:id="@+id/marker"
android:layout_width="20dp"
android:layout_height="30dp"
android:layout_alignParentLeft="true"
android:layout_margin="10dp"
android:background="@drawable/marker_icon" />
<ImageView
android:id="@+id/add"
android:layout_width="25dp"
android:layout_height="26dp"
android:layout_alignParentRight="true"
android:layout_margin="10dp"
android:background="@drawable/add_icon" />
<EditText
android:id="@+id/inputStation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_toLeftOf="@+id/add"
android:layout_toRightOf="@+id/marker"
android:hint="Поиск Заправки"
android:maxLines="1" />
</RelativeLayout>
</RelativeLayout>
<android.support.v4.widget.NestedScrollView
android:id="@+id/bottom_sheet"
android:layout_width="match_parent"
android:layout_height="300dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:background="@android:color/white"
android:clipToPadding="true"
app:layout_behavior="android.support.design.widget.BottomSheetBehavior">
<LinearLayout
android:id="@+id/layoutToAdd"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
<!--<ListView-->
<!--android:id="@+id/listView"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="match_parent"></ListView>-->
</android.support.v4.widget.NestedScrollView>
As you can see the listview is commited,so i tried with every possible ways,even replacing the NESTEDSCROLLVIEW with RELATIVELAYOUT or whatsoever.And here is the code which actually adds view to the linearLayout.
for (int i = 0; i < loopContent; i++) {
String address = addresses.get(i).getAddressLine(0); // If any additional address line present than only, check with max available address lines by getMaxAddressLineIndex()
String city = addresses.get(i).getLocality();
String state = addresses.get(i).getAdminArea();
String country = addresses.get(i).getCountryName();
String postalCode = addresses.get(i).getPostalCode();
String knownName = addresses.get(i).getFeatureName(); // Only if available else return NULL
if (knownName.equals("null") || knownName.toString().isEmpty()) {
knownName = "Нету информации";
}
if (address != null) {
if (address.toString().isEmpty() || address.equals("null")) {
address = "Нету информации";
}
} else {
address = "Нету информации";
}
// holder = new Holder(knownName, address);
// holderArrayList.add(holder);
// adapter.notifyDataSetChanged();
LayoutInflater inflater = LayoutInflater.from(getApplicationContext());
View inflatedLayout = inflater.inflate(R.layout.single_item, null, false);
TextView header = (TextView) inflatedLayout.findViewById(R.id.header);
TextView street = (TextView) inflatedLayout.findViewById(R.id.second);
header.setText(knownName);
street.setText(address);
layoutToAdd.addView(inflatedLayout);
}
progressBar.setVisibility(View.GONE)
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
I am fully clueless on what is the isssue and what to do with it...It is really annoying me already so if anyone can help me out,i would fully appreciate that.
This code works for me, Like on some Pre-Lollipop devices bottom sheet does not work
ViewCompat.postOnAnimation(coordinator, new Runnable() {
@Override
public void run() {
ViewCompat.postInvalidateOnAnimation(coordinator);
}
});
Hope this helps
I was facing the problem in collapsing the bottom sheet. I solved by setting the peak height.
mBottomSheetBehavior.setPeekHeight(0);
If you want BottomSheet to be collapsed and hid, you can add the code like this after you initialized your BottomSheetBehavior:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With