我尝试过跟随代码,但它只将对话框的左上角位置放在中心位置,这样就可以将元素对齐到右边.如何将对话框置于计算元素宽度的实际中心,以便中心线将对话框切换到50%50%的半边?
$('.selector').dialog({ position: 'center' });
Run Code Online (Sandbox Code Playgroud)
最小示例对话框:
<p:dialog header="Test Dialog"
widgetVar="testDialog">
<h:form>
<p:inputText value="#{mbean.someValue}"/>
<p:commandButton value="Save"
onsuccess="testDialog.hide()"
actionListener="#{mbean.saveMethod}"/>
</h:form>
</p:dialog>
Run Code Online (Sandbox Code Playgroud)
我想要做的是让mbean.saveMethod以某种方式阻止对话框关闭,如果有问题并且只通过growl输出消息.这是验证器无法帮助的情况,因为在将保存提交给后端服务器之前无法判断someValue是否有效.目前我使用visible属性执行此操作,并将其指向mbean中的布尔字段.这有效,但它使用户界面变慢,因为弹出或关闭对话框需要命中服务器.
当我按下按钮时,我想保持对话框打开.目前正在关闭.
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Are you sure you want to exit?")
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
MyActivity.this.finish();
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
Run Code Online (Sandbox Code Playgroud) 在官方文档似乎并没有回答这个问题,或者我不明白.
元素(没关系AlertDialog,它也发生在任何TextView上):
TextView tv = (TextView) dialog.findViewById(android.R.id.message);
Run Code Online (Sandbox Code Playgroud)
不一致性.案例A:
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
// or tv.setTextSize(14); does the same
Run Code Online (Sandbox Code Playgroud)
案例B:
tv.setTextSize(getResources().getDimension(R.dimen.text_size_small));
// TypedValue makes no difference either.
Run Code Online (Sandbox Code Playgroud)
values/dimens.xml它在哪里:
<dimen name="text_size_small">14sp</dimen>
Run Code Online (Sandbox Code Playgroud)
结果:字体大小不一样,从资源检索时显得更大.我可能错过了什么,所以我的错误是什么,最重要的是:为什么?
- 更新到第一个答案 -
固定数字只是一个例子,因为没有人会在代码中硬编码固定的字体大小.那么让我重新解释一下这个问题:
为什么如果从代码中获取资源,文本大小比从XML布局获取资源时要大?此外,问题仍然是相同的:如何在代码中检索14sp单元并使其与布局XML中设置的14sp单元保持一致?我没有接受答案,因为它没有告诉我如何在代码中使用资源中的sp单位来处理文本大小.
在此布局上,即使尺寸相同,字体大小也不同:
<TextView
android:id="@+id/my_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/TextBody" />
Run Code Online (Sandbox Code Playgroud)
styles.xml:
<style name="TextBody">
<item name="android:textSize">@dimen/text_size_small</item>
<item name="android:lineSpacingMultiplier">1.1</item>
<item name="android:textColor">@color/body_text_1</item>
<item name="android:textIsSelectable">true</item>
<item name="android:linksClickable">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)
看到text_size_small吗?为什么在这种情况下字体大小比使用相同dimen资源的代码小?
获取内容的上下文onClick(View view),按钮的回调onClickListener()很容易:
view.getContext()
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何获得上下文中onClick(DialogInterface v, int buttonId),对于回调对话框的onClickListener
public class MainActivity extends Activity implements android.content.DialogInterface.OnClickListener
Run Code Online (Sandbox Code Playgroud)
这可能吗?
当jQuery UI对话框打开时,它会选择其中一个按钮并突出显示它或将焦点设置到它等等...如何停止此行为,以便在对话框打开时没有突出显示任何按钮?
编辑:我在对话框选项中尝试了以下操作,它没有从按钮中删除焦点:
...
open:function(event, ui) { $("myunimportantdiv").focus(); },
...
Run Code Online (Sandbox Code Playgroud)
注意:作为临时解决方法,我修改了CSS,.ui-state-focus但这并不理想......
当用户点击菜单项以允许用户选择项目时,我想调出微调器对话框.
我是否需要单独的对话框,还是可以直接使用Spinner?我看到这个链接,提到了一个MODE_DIALOG选项,但它似乎不再被定义了.AlertDialog可能没问题,但所有选项都说"单击列表中的项目不会忽略对话框"这就是我想要的.有什么建议吗?
理想情况下,代码类似于在屏幕上显示微调器的情况:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(activity,
android.R.layout.simple_spinner_item, items);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
myspinner.setAdapter(adapter);
// myspinner.showAsDialog() <-- what i want
Run Code Online (Sandbox Code Playgroud) 我有一个WPF应用程序有这三种类型的东西......
UserControlZack1位于我的WindowMain上......
<Window x:Class="WindowMain"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:ProjectName"
...
Name="WindowMain">
<Grid>
...
<local:UserControlZack x:Name="UserControlZack1" ... />
...
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
UserControlZack1显示一个WindowModal dailog框...
Partial Public Class UserControlZack
...
Private Sub SomeButton_Click(...)
'instantiate the dialog box and open modally...
Dim box As WindowModal = New WindowModal()
box.Owner = ?????
box.ShowDialog()
'process data entered by user if dialog box is accepted...
If (box.DialogResult.GetValueOrDefault = True) Then
_SomeVar = box.SomeVar
...
End If
End Sub
End Class
如何将box.Owner设置为正确的Window,我正在运行的WindowMain实例?
我无法使用box.Owner = Me.Owner,因为"'所有者'不是'ProjectName.UserControlZack'的成员." …
我正在尝试使用警告对话框来提示在android中输入用户名和密码.我在这里找到了这段代码:
if (token.equals("Not Found"))
{
LayoutInflater factory = LayoutInflater.from(this);
final View textEntryView = factory.inflate(R.layout.userpasslayout, null);
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Please Login to Fogbugz");
alert.setMessage("Enter your email and password");
// Set an EditText view to get user input
alert.setView(textEntryView);
AlertDialog loginPrompt = alert.create();
final EditText input1 = (EditText) loginPrompt.findViewById(R.id.username);
final EditText input2 = (EditText) loginPrompt.findViewById(R.id.password);
alert.setPositiveButton("Login", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
input1.getText().toString(); **THIS CRASHES THE APPLICATION**
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { …Run Code Online (Sandbox Code Playgroud) 我有一个Activity继承自AppCompactActivity.在活动集主题的清单中:
<style name="Theme.custom" parent="Theme.AppCompat.Light.Dialog">
<item name="android:windowNoTitle">true</item>
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/accent</item>
<item name="colorButtonNormal">@color/accent</item>
<item name="android:buttonStyle">@style/ButtonStyle</item>
</style>
Run Code Online (Sandbox Code Playgroud)
当我运行活动时,它显示为对话框,但显示标题!我尝试supportRequestWindowFeature(Window.FEATURE_NO_TITLE), RequestWindowFeature(Window.FEATURE_NO_TITLE)但标题仍然显示.请让我知道,有什么问题?
编辑
我解决了,只android:windowNoTitle改为 windowNoTitle!因为我使用的是AppCompactActvity!