【问题标题】:Edje: how to define a "fixed" size group?Edje:如何定义“固定”大小的组?
【发布时间】:2020-12-10 20:24:13
【问题描述】:

我在 Edje 有这个布局:

group { 
  name: "mylayout";
  min: 200 200;
  parts {
     rect { "elm.bg";
        scale: 0;
        desc { "default";
           visible: 1;
           fixed: 1 1;
           color: 255 0 0 255;
           min: 200 200;
        }
     }
     text { "elm.title";
        scale: 0;
        desc { "default";
           text {
              text: "Title";
              size: 32;
           }
        }
     }
  }
}

我想把这种布局中的 2 个放到一个 box 中,但我希望它们都“全尺寸”,即我想要一个可滚动的框。

现在,如果我将这些布局放入一个盒子中,盒子会调整它们的大小以适应一个屏幕。

如果我只是在框中添加一个:

但如果我添加两个:

我使用以下代码将它们添加到框中:

Evas_Object* page = elm_layout_add(box);
elm_layout_file_set(page, "file.edj", "mylayout");
evas_object_size_hint_align_set(page, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(page, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_show(page);
elm_box_pack_end(box, page);

如何强制框仅包含原始大小的元素?

操作系统:Tizen 4.0

【问题讨论】:

    标签: tizen tizen-native-app


    【解决方案1】:

    https://www.enlightenment.org/develop/legacy/program_guide/edje/basic_concepts

    fixed 参数表示这个部分大小是固定的,所以不管全局大小是多少, 该部分将显示为它自己的大小。

    所以如果你设置fixed参数,这部分的最小尺寸不会影响物体的尺寸。 我认为您必须首先删除 fixed 参数。

    现在我们要谈谈尺寸提示alignweight

    hint align 表示该内容对象必须在给定区域中对齐的位置。 你可以很容易地认为 0 是顶部/左侧 0.5 是中间,1.0 是底部/右侧。 但预定义的值 FILL(-1) 表示在给定区域填充内容对象。

    hint align 表示该对象在父区域中的权重。 所以如果盒子里有两个物体,一个是4,一个是6, 第一个只能有 0.4 面积的盒子,第二个可以有 0.6 面积。

    请在链接中查看更多详细信息。

    这是我的测试代码。

    1. 删除固定参数和组最小值(我添加大纲以检查对象的确切位置。如果您可以使用以前的代码删除固定参数和组最小值。)
    
       group {
         name: "mylayout";
         parts {
            rect { "outline";
               desc { "default";
                  visible: 1;
                  color: 0 0 0 255;
                  min: 200 200;
               }
            }
            rect { "elm.bg"
               desc { "default";
                  visible: 1;                                                                                                                                                                                     
                  color: 255 0 0 255;
                  rel.to: "outline";
                  rel1.offset: 1 1;
                  rel2.offset: -2 -2;
               }
            }
            text { "elm.title";
               scale: 0;
               desc { "default";
                  text {
                     text: "Title";
                     size: 32;
                  }
               }
            }
         }
       }
    
    1. 根据需要设置对齐和权重。 Expand 是 1 的同义词。
    
       Evas_Object *win, *bx;
       char buf[PATH_MAX];
                                                                                                                                                                                                                  
       win = elm_win_util_standard_add("box-vert", "Box Vert");
       elm_win_autodel_set(win, EINA_TRUE);
       
       bx = elm_box_add(win);
       evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
       elm_win_resize_object_add(win, bx);
       evas_object_show(bx);
       
       Evas_Object* ly = elm_layout_add(bx);
       
       snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());
       elm_layout_file_set(ly, buf, "mylayout");
       
       evas_object_size_hint_align_set(ly, 0.5, 0.5);
       evas_object_size_hint_weight_set(ly, 1, 1);
       evas_object_show(ly);
       elm_box_pack_end(bx, ly);
       
       Evas_Object* ly2 = elm_layout_add(bx);
       
       elm_layout_file_set(ly2, buf, "mylayout");
       
       evas_object_size_hint_align_set(ly2, 0.5, 0.5);
       evas_object_size_hint_weight_set(ly2, 1, 1);
       evas_object_show(ly2);
       elm_box_pack_end(bx, ly2);
       
       
       evas_object_show(win);
       evas_object_resize(win, 360, 360);
    
    

    如果您有更多问题,请在此处回复! :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-17
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-28
      • 1970-01-01
      相关资源
      最近更新 更多