将 xml 定义的布局与编程的布局相结合



我编写的活动使用了完全由xml定义的布局,例如:

setContentView(R.layout.my_layout_defined_by_xml);

我还编写了使用完全以编程方式创建的布局的活动,例如:

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    game_frame_layout = new FrameLayout(getApplicationContext());
    game_frame_layout.addView(some_view_I_made);
    setContentView(game_frame_layout);

但是我从来没有做过,也不知道该怎么做,是将两者结合起来(这甚至可以做到吗?例如,假设我想让整个屏幕充满以 xml 定义的按钮和视图,但希望以编程方式在某处添加一个额外的按钮。或者相反,我可能希望以编程方式创建的布局包含由 xml 定义的子布局。

我怀疑这实际上可能非常微不足道,但一个问题是我不知道如何将 layoutResID(如 R.id.my_layout_defined_by_xml)转换为布局。

你可以

从XML文件创建一个View对象,如下所示:

LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View v = inflater.inflate(R.layout.your_layout_file_name, null);

反之亦然:您可以创建一个扩展 View 的类,例如 MyTextView,当您想要将其包含在 XML 文件中时,您可以这样做:

<com.example.mypackage.MyTextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="false" />

相关内容

  • 没有找到相关文章

最新更新