实现自定义视图和ScrollView?

时间:2013-12-31 15:15:07

标签: android scrollview android-custom-view

这是我不明白的地方:

    HorizontalScrollView scroll = new HorizontalScrollView(this);       
    scroll.setLayoutParams(new LayoutParams(getResources().getInteger(R.integer.dim_hand_width), getResources().getInteger(R.integer.dim_hand_height)));

    HandLayout = new LinearLayout(this);
    HandLayout.setOrientation(LinearLayout.HORIZONTAL);
    HandLayout.setBackgroundColor(getResources().getColor(R.color.bg_hand));
    HandLayout.setLayoutParams(new LayoutParams(getResources().getInteger(R.integer.dim_hand_width), getResources().getInteger(R.integer.dim_hand_height)));
    scroll.addView(HandLayout);


    for (int i = 0; i < 8; i++){
        Button b = new Button(this);
        b.setWidth(200);
        HandLayout.addView(b);
     }

这显示了带有所有8个按钮的ScrollView,它是可滚动的 但是,当我用最后几行替换:

    for (int i = 0; i < 8; i++){
        HeroCard hc = new HeroCard(this);
        HandLayout.addView(hc);
    }

然后没有任何表现。 HeroCard是一个自定义视图,它只实现了onDraw和onCreate(Context context)方法(我不会复制代码,因为它就是这样)。

我的猜测是Button正在实现一个我不是的功能,这就是为什么它不是绘图。

有什么想法吗?

非常感谢!

2 个答案:

答案 0 :(得分:1)

好像你没有为HeroCard视图设置任何参数,它没有大小,尝试使用getLayoutParams()恢复参数并修改宽度

答案 1 :(得分:1)

使用此:

hc.setWidth(200);
hc.setHeight(50);

在:

for (int i = 0; i < 8; i++){
HeroCard hc = new HeroCard(this);
HandLayout.addView(hc);
}

检查输出。