我试图让我的TextViews和ImageView显示在我添加了一个StateListDrawable的LinearLayout的顶部。我这样创建按钮:
protected StateListDrawable generateButton(String[] colors, String[] selectColors, String strokeColor, int strokewidth)
{
int[] iColors = CurrentTheme.getIntColorArrayFromStringArray(colors);
GradientDrawable gd = new GradientDrawable(Orientation.TL_BR, iColors);
gd.setCornerRadius(10);
gd.setStroke(strokewidth, Color.parseColor(strokeColor));
int[] iSelectColors = CurrentTheme.getIntColorArrayFromStringArray(selectColors);
GradientDrawable sgd = new GradientDrawable(Orientation.TL_BR, iSelectColors);
sgd.setCornerRadius(10);
sgd.setStroke(strokewidth, Color.parseColor(strokeColor));
StateListDrawable slDrawable = new StateListDrawable();
slDrawable.addState(new int[] { android.R.attr.state_pressed }, sgd);
slDrawable.addState(StateSet.WILD_CARD, gd);
return slDrawable;
}
在我的活动中,我将这个drawable添加到linearLayout中,如下所示:
_topMenuButton.setBackgroundDrawable(_theme.getPrimaryButtonDrawable());
布局包含在我的Activity的内容视图中的下面一行:
<include layout="@layout/inc_button_menu" android:id="@+id/second_menu_button" />
依次包含一个LinearLayout,其中有一个ImageView和两个textview。
当我试图从LinearLayout(我在我的活动中添加了StateListDrawable)中获得TextViews并向它们添加文本时,文本不显示。ImageView也是一样。我不确定如何才能让这些视图显示出来。
事实证明,这不是后面的代码,而是包含布局的代码。因为之前的代码是用可绘制的布局文件工作的,所以我假设它不是这段代码。问题是我在其中一个项目上使用了android:weight="1"