检索布局/视图属性的列表

时间:2018-02-10 05:56:58

标签: android android-layout android-view

我正在开发一个小型学习工具项目,该项目有多个不同的视图以各种片段显示。我想做的是当用户选择布局或视图(例如TextView)时,弹出一个对话框,显示其所有可用属性(例如android:layout_width,android:layout_height,android:focusable等)。我没有通过每个布局/视图并手动在文件或类中键入属性,而是希望有一种方法可以以编程方式获取属性。目前,我只有一个我正在阅读的JSON文件,但它变得非常繁琐。不同的API版本也会出现问题。

只是为了了解我目前正在处理的内容,这是我的JSON文件:

{
  "LayoutParams": [
    "android:layout_height",
    "android:layout_width"
  ],

  "MarginLayoutParams": [
    "android:layout_margin",
    "android:layout_marginBottom",
    "android:layout_marginEnd",
    "android:layout_marginHorizontal",
    "android:layout_marginLeft",
    "android:layout_marginRight",
    "android:layout_marginStart",
    "android:layout_marginTop",
    "android:layout_marginVertical"
  ],

  "RelativeLayout": {
    "inherited_properties": [
      "MarginLayoutParams",
      "LayoutParams"
    ],
    "primary_properties": [{
        "android:gravity": ["bottom", "center", "center_horizontal", "center_vertical", "clip_horizontal", "clip_vertical", "end", "fill", "fill_horizontal", "fill_vertical", "left", "right", "start", "top"],
        "android:ignoreGravity": [""],
        "android:layout_above": [],
        "android:layout_alignBaseline": [],
        "android:layout_alignBottom ": [],
        "android:layout_alignEnd": [],
        "android:layout_alignLeft": [],
        "android:layout_alignParentBottom": [],
        "android:layout_alignParentEnd": [],
        "android:layout_alignParentLeft": [],
        "android:layout_alignParentRight": [],
        "android:layout_alignParentStart": [],
        "android:layout_alignParentTop": [],
        "android:layout_alignRight": [],
        "android:layout_alignStart": [],
        "android:layout_alignTop": [],
        "android:layout_alignWithParentIfMissing": [],
        "android:layout_below": [],
        "android:layout_centerHorizontal": [],
        "android:layout_centerInParent": [],
        "android:layout_centerVertical": [],
        "android:layout_toEndOf": [],
        "android:layout_toLeftOf": [],
        "android:layout_toRightOf": [],
        "android:layout_toStartOf": []
      }]
  }
}

1 个答案:

答案 0 :(得分:0)

您可以从R.stylable中提取它们。

AFAIK,没有定义XML架构或DTD,因此git merge可能是您唯一的选择。

相关问题