gpt4 book ai didi

Android 警报对话框 - 调整文本大小? (改变方向)

转载 作者:行者123 更新时间:2023-11-29 17:43:50 25 4
gpt4 key购买 nike

我正在学习 Android,我正在努力避免在我的应用中出现这种行为。

这是在对话框中使用 setMessage 的结果。

rotate

这是在对话框中使用 setTittle 的结果。

rotate2

有没有办法避免当我将方向更改为水平时文本或单选按钮被剪切?

我在这个警告对话框中使用自定义布局 (LinearLayout) 来显示单选按钮。

我还使用 onCreateDialog 来创建警报对话框。

@Override
protected Dialog onCreateDialog(int id) {

Dialog createdDialog;
AlertDialog.Builder builder = new AlertDialog.Builder(this);
toDisplayInDialog = getLayoutInflater().inflate(R.layout.light_radiogroup, null);
builder.setTitle("Choose Startup Color:")
.setPositiveButton("Set Color",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// Do things on Click
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
})
.setView(toDisplayInDialog);
createdDialog = builder.create();
return createdDialog;
}

最佳答案

基本问题——您可能已经猜到了——是在横向模式下有太多控件无法容纳在屏幕上。您需要添加一个 ScrollView 以便用户可以滚动 UI。

<ScrollView 
android:layout_width="match_parent"
android:layout_height="wrap_content">

<RadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Green"
android:checked="true" />

... etc.

</ScrollView>

更新

有多种方法可以将小部件布局为两列。不幸的是,没有标准的布局可以让控件流向多列。但是,下面是显示五个单选按钮的固定方式。

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">

<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">

<RadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Green" />
<RadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Black" />
<RadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Yellow" />

</LinearLayout>

<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">

<RadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Red" />
<RadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="White" />

</LinearLayout>

</LinearLayout>

下面是预览:

Preview

注意:您可能不想在纵向显示时使用此布局,而只想在横向显示时使用。您可以通过添加可以添加此布局的“layout-land”资源目录来同时拥有两者,并在普通的“layout”资源目录中使用常规布局。这样,系统将根据设备是纵向还是横向来选择相应的布局资源。

这是两倍的工作量,但您的 UI 会因此看起来更好。

关于Android 警报对话框 - 调整文本大小? (改变方向),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27755100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com