0

我试图让我的 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;
}

在我的活动中,我将此可绘制对象添加到线性布局,如下所示:

_topMenuButton.setBackgroundDrawable(_theme.getPrimaryButtonDrawable());

布局包含在我的 Activity 的内容视图中的以下行中:

<include layout="@layout/inc_button_menu" android:id="@+id/second_menu_button" />

其中又包括一个 LinearLayout,其中有一个 ImageView 和两个 TextView。

当我尝试从 LinearLayout 获取 TextViews(我在我的 Activity 中添加了 StateListDrawable)并向它们添加 Text 时,文本不会显示。ImageView 也是如此。我不确定如何让这些视图显示出来。

任何帮助是极大的赞赏。

4

1 回答 1

0

事实证明,这不是背后的代码,而是包含的布局中的代码。由于该代码之前将布局文件用作可绘制文件,因此我认为它不是此代码。问题是我在其中一项上使用了 android:weight="1" 。

于 2013-07-20T07:59:01.417 回答