我正在尝试将一组以编程方式创建的按钮的背景渲染到具有橙色背景的主布局上。我可以调整表格行背景以匹配橙色,但如果我需要稍后在代码中更改背景颜色,我会尝试通过单个变量更改来做到这一点。
当我在应用程序中选择一个为用户创建新按钮的选项并且这些按钮的支持表格行的背景呈现为白色背景并且不显示其背后的橙色主背景时,问题就开始了。按钮渲染得很好,但操作系统似乎没有考虑 xml 文件中的背景颜色/透明命令或 android 颜色。我不使用这两种方法,尽管我已经尝试过但没有成功。我使用或者/或试图让背景符合透明。我一定遗漏了一些东西,因为源文件的唯一调用是将下面的布局覆盖到另一个作为应用程序主要布局的 tablerow 上。当用户选择某个任务时,它只是将按钮添加到布局中。
<?xml version="1.0" encoding="utf-8"?>
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/newTagTableRow"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:color = "#00000000" <----Either this or below line
android:background="@android:color/transparent" <----Either this or above line
>
<Button
android:id="@+id/newTagButton"
android:layout_width="@dimen/tagButtonWidth"
android:layout_height="wrap_content" />
<Button
android:id="@+id/newEditButton"
android:layout_width="@dimen/editButtonWidth"
android:layout_height="wrap_content"
android:text="@string/edit" />
以下是活动对上面粘贴的表格行所做的事情:
private void makeTagGUI(String tag, int index){
//get a reference to the LayoutInflator service
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
//inflate new_tag_view.xml to create new tag and edit Buttons
View newTagView = inflater.inflate(R.layout.new_tag_view, null);
//get newTagButton, set its text and register its listener
Button newTagButton = (Button) newTagView.findViewById(R.id.newTagButton);
newTagButton.setText(tag);
newTagButton.setOnClickListener(queryButtonListener);
//get newEditButton and register its listener
Button newEditButton = (Button) newTagView.findViewById(R.id.newEditButton);
newEditButton.setOnClickListener(editButtonListener);
//add new tag and edit buttons to queryTableLayout
queryTableLayout.addView(newTagView, index);
}// end method makeTagGUI
据我了解,inflator 对象只是指向 tablerrow xml,它遵循 xml 中概述的设置。