- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
Tôi có một Bảng dưới cùng có NestedScrollView bên trong nó (xem bên dưới). Tôi muốn ẩn một số phần nhất định của NestedScrollView này khi tôi nhấn nút FAB. Tuy nhiên, khi tôi thay đổi mức độ hiển thị của một số bố cục tuyến tính thành GONE, Bảng dưới cùng sẽ bay lên trên cùng. Nhìn ở đây:
Bạn có thể bắt đầu từhttps://github.com/Tanrikut/BottomSheetVí dụ Nhận mã hoàn chỉnh
Phương pháp của tôi để thay đổi mức độ hiển thị:
khoảng trống riêng tư thay đổiVisibility() {
phụ đềLayout.setVisibility(View.GONE);
phối hợpLayout.setVisibility(View.GONE);
timeLayout.setVisibility(View.GONE);
}
Xml NestedScrollView của tôi:
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
ứng dụng:behavior_peekHeight="120dp"
app:layout_behavior="android.support.design.widget.BottomSheetBehavior"
android:id="@+id/bottom_sheet_main">
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="28dp"
android:background="@android:color/white"
android:animateLayoutChanges="true"
android:orientation="dọc"
>
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="dọc"
android:paddingLeft="10dp"
android:paddingStart="10dp"
android:paddingTop="@dimen/activity_horizontal_margin">
style="@style/TextAppearance.AppCompat.Headline"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Sô cô la bồ công anh"
android:id="@+id/title" />
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/activity_horizontal_margin"
android:layout_marginTop="16dp"
android:orientation="ngang"
android:id="@+id/subtitleLayout">
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/phụ đề"
android:text="Phụ đề" />
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="ngang"
android:padding="@dimen/activity_horizontal_margin"
android:id="@+id/coordineLayout">
android:layout_width="24dp"
android:layout_height="24dp"
android:alpha="0,36"
android:src="@drawable/ic_room_24dp"
android:background="@null" />
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_marginStart="@dimen/activity_horizontal_margin"
android:text="740, Valencia St, San Francisco, CA"
android:textColor="@android:color/primary_text_light"
android:id="@+id/bottom_sheet_coordine" />
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="ngang"
android:padding="@dimen/activity_horizontal_margin"
android:id="@+id/timeLayout">
android:layout_width="24dp"
android:layout_height="24dp"
android:alpha="0,36"
android:src="@drawable/ic_query_builder_24dp"
android:background="@null" />
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_marginStart="@dimen/activity_horizontal_margin"
android:text="Thứ Tư, 10 giờ sáng - 9 giờ tối"
android:textColor="@android:color/primary_text_light"
android:id="@+id/bottom_sheet_time" />
câu trả lời hay nhất
Tôi gặp phải vấn đề này và phải mất một thời gian tôi mới tìm ra nguyên nhân gây ra sự cố.
Điều này là do bạn đang sử dụng android:animateLayoutChanges, điều này sẽ hiển thị lỗi trong BottomSheetBehavior hoặc CoorderLayout.
Hãy xóa nó và BottomSheet sẽ tự dừng hoạt ảnh khi không cần thiết. Không phải là một sửa chữa, nhưng ít nhất là một cách giải quyết.
--
gia hạn:
Hóa ra là nếu bạn bật "animateLayoutChanges" theo chương trình bằng cách đặt phiên bản LayoutTransition để sử dụng, bạn có thể đặt cờ trên đó để tránh bị nhầm lẫn với Chế độ xem tổ tiên của Chế độ xem bạn đang sử dụng android:animateLayoutChanges (còn gọi là BottomSheet của bạn thùng chứa):
Chuyển đổi LayoutTransition = new LayoutTransition();
transition.setAnimateParentHierarchy(false);
yourLinearLayoutThatNeedsLayoutAnimation.setLayoutTransition(transition);
Về android - BottomSheet bay đi với sự thay đổi khả năng hiển thị, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/38327849/
Tôi là một lập trình viên xuất sắc, rất giỏi!