问题描述
我试图设置一个固定高度,不可扩展的带有圆角的底版布局片段。
我发现了类似的stackoverflow问题,建议设置窥视高度(setPeekHeight()),并使用下面的xml代码通过setStyle()方法设置圆角。他们两个都不适合我。 如何设置带有圆角的固定高度的不可扩展或不可拖动的底片?
public class discoverFragment extends BaseBottomSheetDialogFragment implements Observer<discoverviewmodelState>,OndiscoverSelectedListener {
@BindView(R2.id.discover)
LinearLayout ldiscoverLayout;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(STYLE_norMAL,R2.style.CaAppTheme);
}
@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
lView = inflater.inflate(com.misc.device.R.layout.fragment_discover,container,false);
ButterKnife.bind(this,lView);
/* Set the layout gravity to Bottom */
CoordinatorLayout.LayoutParams layoutParams = new CoordinatorLayout.LayoutParams(ldiscoverLayout.getLayoutParams());
layoutParams.gravity = Gravity.BottOM;
ldiscoverLayout.setLayoutParams(layoutParams);
return lView;
}
@NotNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
lSheet = super.onCreateDialog(savedInstanceState);
lSheet.setonShowListener(dialogInterface -> {
BottomSheetDialog d = (BottomSheetDialog) lSheet;
FrameLayout bottomSheet = d.findViewById(R.id.design_bottom_sheet);
BottomSheetBehavior.from(bottomSheet).setHideable(false);
//BottomSheetBehavior.from(bottomSheet).setPeekHeight(this.getResources().getDimensionPixelSize(R.dimen.peek_height));
});
return lSheet;
}
}
fragment_discover.xml:
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/layout_po_background_color"
android:layoutDirection="locale"
android:orientation="vertical">
<LinearLayout
android:id="@+id/discover"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/ca"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="17dp"
android:text="@string/ca"
android:textAlignment="center"
android:textColor="@color/gray_color"
android:textSize="@dimen/size_12"
android:visibility="gone"
android:textStyle="bold" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/discovered"
android:layout_width="match_parent"
android:layout_height="145dp"
android:layout_marginTop="@dimen/margin"
tools:listitem="@layout/item_discovered" />
<ProgressBar
android:id="@+id/progress"
style="?android:attr/progressBarStyleSmall"
android:layout_width="@dimen/progress_bar"
android:layout_height="@dimen/progress_bar"
android:layout_gravity="center"
android:layout_marginTop="@dimen/margin"
android:indeterminate="true"
android:progressBackgroundTint="#606067"
android:progresstint="#8e8e93" />
<TextView
android:id="@+id/state_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="17dp"
android:gravity="center"
android:paddingStart="@dimen/margin"
android:paddingEnd="@dimen/margin"
android:text="@string/progress_message"
android:textColor="@color/black_color"
android:textSize="@dimen/ca_size"
android:visibility="visible" />
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/error_action"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="12dp"
android:layout_marginBottom="100dp"
android:background="@color/action_background"
android:padding="@dimen/action_size"
android:textColor="@color/white"
tools:text="@string/expo_turn_bluetooth_on_label" />
</LinearLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
styles.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="CaAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="bottomSheetDialogTheme">@style/DialogTheme</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsFloating">true</item>
</style>
<style name="DialogTheme"
parent="Theme.Design.Light.BottomSheetDialog">
<item name="bottomSheetStyle">@style/ModalStyle</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:backgroundDimEnabled">true</item>
</style>
<style name="ModalStyle"
parent="Widget.Design.BottomSheet.Modal">
<item name="android:background">@drawable/ca_round_corners</item>
<item name="behavior_peekHeight">50dp</item>
</style>
</resources>
ca_round_corners.xml:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:topLefTradius="24dp"
android:topRighTradius="24dp"/>
<solid android:color="@color/white"/>
</shape>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)