Ank*_*009 3 android android-alertdialog kotlin
是的,这被问到了几种方式,但没有一种方法有效。
我正在尝试将对话框宽度扩展到全屏。
对话框布局:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/constraint_layout"
android:layout_width="match_parent"
android:layout_height="300dp">
<android.support.constraint.Guideline
android:id="@+id/guideline3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.08" />
<TextView
android:fontFamily="@font/gotham_medium_regular"
android:textAllCaps="true"
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="Login"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Large"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="@+id/guideline3"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:fontFamily="@font/gotham_light"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Medium"
android:layout_marginTop="8dp"
app:layout_constraintStart_toStartOf="@+id/guideline3"
app:layout_constraintTop_toBottomOf="@+id/textView6"
android:id="@+id/textView7"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Enter your phone number to proceed" />
<android.support.design.widget.TextInputLayout
android:id="@+id/text_input"
android:layout_marginTop="24dp"
android:layout_width="0dp"
app:layout_constraintTop_toBottomOf="@+id/textView7"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="@+id/guideline4"
app:layout_constraintStart_toStartOf="@+id/guideline3">
<android.support.design.widget.TextInputEditText
android:id="@+id/userPhone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/gotham_light"
android:hint="PHONE NUMBER"
android:inputType="phone"
android:text="+91" />
</android.support.design.widget.TextInputLayout>
<android.support.constraint.Guideline
android:id="@+id/guideline4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.92" />
<Button
android:layout_marginBottom="@dimen/activity_horizontal_margin"
android:id="@+id/continueButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@drawable/button_background"
android:fontFamily="@font/gotham_light"
android:text="Continue"
android:textColor="@android:color/white"
app:layout_constraintEnd_toEndOf="@+id/guideline4"
app:layout_constraintStart_toStartOf="@+id/guideline3"
app:layout_constraintTop_toBottomOf="@+id/text_input" />
</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)
对话代码:
val dialogBuilder = AlertDialog.Builder(ContextThemeWrapper(context,R.style.ThemeDialog))
val inflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
val dialogView = inflater.inflate(R.layout.mobile_bottom_sheet_layout, null)
val phone = dialogView.findViewById<EditText>(R.id.userPhone)
dialogBuilder.setView(dialogView)
val alertDialog = dialogBuilder.create()
val countinueButton = dialogView.findViewById<Button>(R.id.continueButton) as Button
countinueButton.setOnClickListener {
if(phone.text.toString().isEmpty()){
phone.error=getString(R.string.empty)
phone.requestFocus()
}else if(phone.text.toString().length!=13){
phone.error=getString(R.string.phone_length_error)
phone.requestFocus()
}else{
checkIfTrainerExists(phone.text.toString(),this@LoginActivity);
}
}
alertDialog.show()
Run Code Online (Sandbox Code Playgroud)
我尝试过的事情:
我也尝试过其他解决方案。但没有一个工作。
看看这个示例Full Width Dialog。这可能对你有帮助。
为对话框创建样式,如下所示:
<style name="FullWidth.Dialog" parent="Theme.AppCompat.DayNight.Dialog">
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowFullscreen">false</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:windowBackground">@android:color/transparent</item>
<!--<item name="android:windowAnimationStyle">@style/DialogAnimation</item>-->
</style>
Run Code Online (Sandbox Code Playgroud)
将样式添加到您的对话框onCreateDialog中:
public class ChangePasswordDialog extends DialogFragment {
private Dialog dialog;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
dialog = new Dialog (getActivity(), R.style.FullWidth_Dialog); //this does the trick.
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
View view = LayoutInflater . from (getActivity()).inflate(
R.layout.dialog_change_password,
null
);
dialog.setContentView(view);
dialog.show();
return dialog;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4849 次 |
| 最近记录: |