線上直播原始碼,自定義AlertDialog設定寬高並去掉預設的邊框
線上直播原始碼,自定義AlertDialog設定寬高並去掉預設的邊框
1、先寫一個自定義的AlertDialog。
package com.phone.common_library.dialog; import android.annotation.SuppressLint; import android.content.Context; import android.content.DialogInterface; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; import com.phone.common_library.R; import com.phone.common_library.callback.OnCommonSingleParamCallback; import com.phone.common_library.callback.OnItemViewClickListener; public class StandardDialog { private AlertDialog alertDialog; private TextView tevTitle; private TextView tevContent; private View viewHorizontalLine; private TextView tevCancel; private View viewVerticalLine; private TextView tevOk; @SuppressLint("RestrictedApi") public StandardDialog(@NonNull Context context) { View view = LayoutInflater.from(context).inflate(R.layout.dialog_standard, null, false); tevTitle = (TextView) view.findViewById(R.id.tev_title); tevContent = (TextView) view.findViewById(R.id.tev_content); viewHorizontalLine = (View) view.findViewById(R.id.view_horizontal_line); tevCancel = (TextView) view.findViewById(R.id.tev_cancel); viewVerticalLine = (View) view.findViewById(R.id.view_vertical_line); tevOk = (TextView) view.findViewById(R.id.tev_ok); //設定R.style.dialog_decimal_style和setView(view, 0, 0, 0, 0)就可以去掉 //AlertDialog的預設邊框,此時AlertDialog的layout的寬高就是AlertDialog的寬高 alertDialog = new AlertDialog.Builder(context, R.style.standard_dialog_style) .setView(view) .create(); tevCancel.setOnClickListener(v -> { onItemViewClickListener.onItemClickListener(0, v); }); tevOk.setOnClickListener(v -> { onItemViewClickListener.onItemClickListener(1, v); }); alertDialog.setOnCancelListener(new DialogInterface.OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { onCommonSingleParamCallback.onSuccess(""); } }); alertDialog.show(); Window window = alertDialog.getWindow(); if (window != null) { // window.setBackgroundDrawableResource(android.R.color.transparent); // 取消這些邊框的關鍵程式碼 window.setBackgroundDrawable(null); window.setGravity(Gravity.CENTER); // window.setWindowAnimations(R.style.PictureThemeDialogWindowStyle); WindowManager.LayoutParams params = window.getAttributes(); window.setAttributes(params); //把 DecorView 的預設 padding 取消,同時 DecorView 的預設大小也會取消 window.getDecorView().setPadding(0, 0, 0, 0); } } public void setTevContent(String content) { tevContent.setText(content); } public void setTevCancelHide() { viewVerticalLine.setVisibility(View.GONE); tevCancel.setVisibility(View.GONE); } public void setCannotHide() { alertDialog.setCancelable(false); alertDialog.setCanceledOnTouchOutside(false); } public void hideStandardDialog() { if (alertDialog != null) { alertDialog.dismiss(); alertDialog = null; } } private OnItemViewClickListener onItemViewClickListener; public void setOnItemViewClickListener(OnItemViewClickListener onItemViewClickListener) { this.onItemViewClickListener = onItemViewClickListener; } private OnCommonSingleParamCallback<String> onCommonSingleParamCallback; public void setOnCommonSingleParamCallback(OnCommonSingleParamCallback<String> onCommonSingleParamCallback) { this.onCommonSingleParamCallback = onCommonSingleParamCallback; } }
2、AlertDialog的layout。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" xmlns:tools=" android:layout_width="@dimen/dp_300" android:layout_height="@dimen/dp_240" android:background="@drawable/corners_14_color_white" android:orientation="vertical"> <!-- 注意:這裡一定要寫一個佈局,這個佈局和本佈局的根佈局寬高相同,要寫固定寬高,不要使用match_parent,不然寬高可能會失效 --> <LinearLayout android:layout_width="@dimen/dp_300" android:layout_height="@dimen/dp_240" android:orientation="vertical" tools:ignore="UselessParent"> <View android:layout_width="match_parent" android:layout_height="@dimen/dp_20" /> <TextView android:layout_width="match_parent" android:layout_height="@dimen/dp_40" android:layout_gravity="center_horizontal" android:gravity="center" android:paddingStart="@dimen/dp_10" android:paddingEnd="@dimen/dp_10" android:text="Decimal" android:textColor="@color/blue" android:textSize="@dimen/sp_16" /> <View android:layout_width="match_parent" android:layout_height="@dimen/dp_20" /> <EditText android:id="@+id/edt_input" android:layout_width="@dimen/dp_240" android:layout_height="@dimen/dp_40" android:layout_gravity="center_horizontal" android:background="@drawable/corners_14_color_white_stroke_1_color_80000000" android:gravity="center_vertical" android:paddingStart="@dimen/dp_15" android:paddingEnd="@dimen/dp_15" android:textColor="@color/colorBlack333" android:textSize="@dimen/sp_16" /> <View android:layout_width="match_parent" android:layout_height="@dimen/dp_20" /> <FrameLayout android:layout_width="@dimen/dp_200" android:layout_height="@dimen/dp_40" android:layout_gravity="center_horizontal"> <TextView android:id="@+id/tev_cancel" android:layout_width="@dimen/dp_80" android:layout_height="@dimen/dp_40" android:layout_gravity="start" android:background="@drawable/corners_14_color_white_stroke_1_color_80000000" android:gravity="center" android:paddingStart="@dimen/dp_10" android:paddingEnd="@dimen/dp_10" android:text="cancel" android:textColor="@color/color_80000000" android:textSize="@dimen/sp_16" /> <TextView android:id="@+id/tev_confirm" android:layout_width="@dimen/dp_80" android:layout_height="@dimen/dp_40" android:layout_gravity="end" android:background="@drawable/corners_14_color_white_stroke_1_color_blue" android:gravity="center" android:paddingStart="@dimen/dp_10" android:paddingEnd="@dimen/dp_10" android:text="confirm" android:textColor="@color/blue" android:textSize="@dimen/sp_16" /> </FrameLayout> </LinearLayout> </LinearLayout>
以上就是線上直播原始碼,自定義AlertDialog設定寬高並去掉預設的邊框, 更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2948945/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 直播平臺原始碼,自定義設定 View 四個角的圓角 以及邊框的設定原始碼View
- 直播系統app原始碼,設定樣式(字型樣式、行列寬高、對齊方式、邊框)APP原始碼
- 直播系統原始碼,簡易的自定義確認彈框AlertDialog原始碼
- 影片直播原始碼,去掉Button自帶邊框原始碼
- 成品直播原始碼,設定樣式(字型樣式、行列寬高、對齊方式、邊框、填充和漸變)原始碼
- 直播商城原始碼,AlertDialog.Builder 設定點選不關閉彈框原始碼UI
- 線上直播原始碼,自定義導航欄並固定居中對齊原始碼
- 線上直播原始碼,自定義氣泡效果(BubbleView)原始碼View
- 直播平臺搭建,使用vue-pdf 實現pdf線上預覽並且自定義預覽框高度Vue
- Android 自定義 AlertDialog 提示框Android
- 線上直播系統原始碼,預設倒數計時,自定義輸入時間倒數計時原始碼
- 表格的邊距 邊框設定
- 線上直播原始碼,修改預設的箭頭的兩種方式原始碼
- 線上直播原始碼,npm設定映象的方法 可切換原始碼NPM
- 影片直播原始碼,預設展開側邊欄選單原始碼
- 直播網站程式原始碼,給元件按鈕、文字編輯框等設定圓形邊框、顏色網站原始碼元件
- CSS設定div邊框演示程式碼CSS
- 成品直播原始碼推薦,原生button按鈕css去掉預設樣式原始碼CSS
- 如何使用CSS設定文字框的邊框CSS
- 線上直播系統原始碼,自定義底部 BottomNavigationBar原始碼Navigation
- 影片直播app原始碼,自定義View 線型EditText輸入框APP原始碼View
- 自定義Excel表格邊框的技巧Excel
- 如何去除掉input的預設邊框
- table 設定合併邊框
- JavaScript設定table表格邊框JavaScript
- app直播原始碼,ButtonTextView的背景設定APP原始碼TextView
- 直播小程式原始碼,react-native自定義文字輸入框原始碼React
- 線上直播原始碼,安裝mysql沒有提示設定密碼的問題原始碼MySql密碼
- button設定邊寬和圓角
- CSS設定邊框為透明程式碼例項CSS
- 直播app原始碼,預設顯示搜尋框 保留搜尋條件APP原始碼
- 直播商城原始碼,密碼輸入框自定義顯示隱藏圖示原始碼密碼
- 設定bootstrap modal模態框的寬度和寬度boot
- app直播原始碼,Flutter 寬高自適應APP原始碼Flutter
- SVG設定邊框的透明度程式碼例項SVG
- 短視訊平臺原始碼,自定義上傳有邊框的背景圖片原始碼
- CSS 設定邊框透明度CSS
- css設定四角邊框CSS