北向应用:自定义dialog布局实践

鸿蒙时代
发布于 2020-12-7 17:52
浏览
0收藏

研学之自定义dialog布局实践。

显示效果:

  北向应用:自定义dialog布局实践 -鸿蒙开发者社区

点击图中的文字进行下一步

北向应用:自定义dialog布局实践 -鸿蒙开发者社区

 


代码的实现:

第一个布局文件

<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayout
    xmlns:ohos="http://schemas.huawei.com/res/ohos"
    ohos:height="match_parent"
    ohos:width="match_parent"
    ohos:orientation="vertical">
    <Button
        ohos:id="$+id:text_01"
        ohos:width="match_content"
        ohos:height="match_content"
        ohos:text_size="30fp"
        ohos:text="Dialog显示"
        ohos:top_margin="0vp"
        ohos:text_color="red"/>
</DirectionalLayout>
第二个布局文件
<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayout
    xmlns:ohos="http://schemas.huawei.com/res/ohos"
    ohos:width="match_parent"
    ohos:height="match_content"
    ohos:padding="10vp"
    ohos:background_element="grey"
    ohos:orientation="vertical">
    <Text
        ohos:width="match_parent"
        ohos:height="match_content"
        ohos:text="Dialog标题"
        ohos:text_color="Black"
        ohos:text_style="bold"
        ohos:text_size="40fp"/>
    <Text
        ohos:width="match_parent"
        ohos:height="match_parent"
        ohos:text="自定义Dialog内容"
        ohos:text_color="Black"
        ohos:text_style="bold"
        ohos:weight="1"
        ohos:text_alignment="vertical_center"
        ohos:top_margin="30vp"
        ohos:bottom_margin="30vp"
        ohos:left_margin="10vp"
        ohos:right_margin="10vp"
        ohos:text_size="30fp"/>

    <DirectionalLayout
        ohos:height="match_content"
        ohos:width="match_parent"
        ohos:orientation="horizontal">
        <Button
            ohos:width="match_parent"
            ohos:text="取消"
            ohos:text_size="30fp"
            ohos:padding="10vp"
            ohos:text_color="White"
            ohos:weight="1"
            ohos:margin="10vp"
            ohos:background_element="yellow"
            ohos:height="match_content"/>
        <Button
            ohos:width="match_parent"
            ohos:text="确定"
            ohos:text_size="30fp"
            ohos:weight="1"
            ohos:padding="10vp"
            ohos:text_color="White"
            ohos:margin="10vp"
            ohos:background_element="green"
            ohos:height="match_content"/>
    </DirectionalLayout>
</DirectionalLayout>
然后进行绑定
package com.example.jltfdialog.slice;
import com.example.jltfdialog.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.Button;
import ohos.agp.components.Component;
import ohos.agp.components.LayoutScatter;
import ohos.agp.window.dialog.CommonDialog;
public class MainAbilitySlice extends AbilitySlice {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        CommonDialog commonDialog = new   CommonDialog(this);
       super.setUIContent(ResourceTable.Layout_layout1);
        Button button= (Button) findComponentById(ResourceTable.Id_text_01);
        button.setClickedListener(new Component.ClickedListener() {
            @Override
            public void onClick(Component component) {

                Component component1 =   LayoutScatter.getInstance(getContext())
                        .parse(ResourceTable.Layout_ability_main,   null, true);
                commonDialog.setSize(800, 500);
                commonDialog.setContentCustomComponent(component1);
                commonDialog.show();
            }
        });
    }
    @Override
    public void onActive() {
        super.onActive();
    }
    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }
}

标签
已于2021-4-30 17:18:03修改
2
收藏
回复
举报
1条回复
按时间正序
/
按时间倒序
云中的雨
云中的雨

感谢,已解决

回复
2021-4-30 16:11:18
回复
    相关推荐