android 如何让自定义dialog的宽度充满整个屏幕
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 如何让自定义dialog的宽度充满整个屏幕相关的知识,希望对你有一定的参考价值。
AlertDialog dialog = builder.create();dialog.setView(view);
dialog.show();
WindowManager m = getWindowManager();
Display d = m.getDefaultDisplay(); //为获取屏幕宽、高
android.view.WindowManager.LayoutParams p = dialog.getWindow().getAttributes(); //获取对话框当前的参数值
p.height = (int) (d.getHeight() * 0.3); //高度设置为屏幕的0.3
p.width = (int) (d.getWidth() * 0.5); //宽度设置为屏幕的0.5
dialog.getWindow().setAttributes(p); //设置生效
这个可以给你参考一下,你应该是自定义样式的dialog 你只需要在dialog.setView(view);之前把你的布局加载进去就可以了。 参考技术A
方案:
通过设置Dialog的样式实现
步骤:
1、添加style<style name="Dialog_FS">
<item name="android:windowFullscreen">true</item>
<item name="android:windowNoTitle">true</item>
</style>
2、代码里面设置dialog的样式
Dialog dialog = new Dialog(this,R.style.Dialog_FS); //设置全屏样式
dialog.setContentView(R.layout.main); //设置dialog的布局
dialog.show();//显示dialog界面
让自定义 TableViewCell 的 UIimageView 宽度为单元格宽度的 1/3,单元格高度 = 图像纵横比
【中文标题】让自定义 TableViewCell 的 UIimageView 宽度为单元格宽度的 1/3,单元格高度 = 图像纵横比【英文标题】:Have UIimageView width of custom TableViewCell be 1/3 of cell width, and height of cell = image aspect ratio 【发布时间】:2018-08-05 21:38:08 【问题描述】:我是 iOS 编程新手,主要是使用界面生成器来调整单元格布局。 目前我有一个带有 ImageView 和 Label 的自定义 TableView 单元格。
我想:
1) ImageView Width = 1/3 大小的单元格(我似乎无法通过情节提要做到这一点)
2) 在保持图像纵横比的情况下动态调整单元格高度。我已经为 UIImageView 添加了约束,使其等于单元格高度。
我搜索了 ***,但其中一些答案变得非常复杂,所以我无法真正理解如何将它与我的案例相匹配。 我玩弄了一些限制,但似乎我必须以编程方式执行此操作?
这是我目前拥有的单元格方法:
extension FirstTableViewController: UITableViewDelegate, UITableViewDataSource
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
return dataCells.count
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let folderCell = dataCells[indexPath.row]
print(folderCell)
let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! FirstTableViewCell
cell.setCell(cell:folderCell)
return cell
这是我的单元格类:
class FirstTableViewCell: UITableViewCell
@IBOutlet weak var ImageView: ScaledHeightImageView!
@IBOutlet weak var FolderLabel: UILabel!
override func awakeFromNib()
super.awakeFromNib()
//print(FolderLabel)
func setCell (cell : FolderCell)
self.ImageView.image = cell.image
self.FolderLabel.text = cell.label
【问题讨论】:
【参考方案1】:您可以通过在故事板上添加与 superview 相等的宽度,然后将其 Multiplier 更改为 0.3
【讨论】:
啊,谢谢 =)。 抱歉,打扰您了,您是如何获得与 Superview 相同的宽度的?您是否同时单击 view 和 imageView 并选择“等宽”?谢谢。 任何时候,Ctrl + 从图像视图拖到 contentView“单元格背景” 谢谢。你的意思是“contentView”吗?我看到了“contentView”,但我不确定我没有看到“单元格背景”。 谢谢。很抱歉再次打扰您。我按照您的建议添加了约束,但是如果我将乘数设为 0.5,则某些图像似乎不会占据单元格的一半,而其他图像则占据一半以上。我有方面适合检查。看来我仍然需要动态更改单元格的高度,以便它可以保持纵横比,同时只占用一半的单元格。我该怎么做呢?谢谢。以上是关于android 如何让自定义dialog的宽度充满整个屏幕的主要内容,如果未能解决你的问题,请参考以下文章
android将activity设置成自定义的Dialog怎么调整大小
[Android] 自定义 Dialog 布局设置固定宽高无效