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 布局设置固定宽高无效

如何自定义Android Dialog的样式?

Android对话框Dialog 的一点小问题

如何在android中设置自定义分钟间隔timepickerdialog

让自定义列表适配器正确膨胀多个线性布局