【问题标题】:How to create Horizontal scroll view with the TextField in Blackberry如何在 Blackberry 中使用 TextField 创建水平滚动视图
【发布时间】:2013-05-09 09:27:30
【问题描述】:

我是 Blackberry Field 的新手,我想创建一个自定义的水平滚动视图,它应该与下图完全一样。任何帮助将不胜感激

我正在使用 Blackberry Simulator 9900,提前致谢。

【问题讨论】:

    标签: blackberry textfield horizontalscrollview


    【解决方案1】:

    我猜中间部分只能滚动,对吧?

    您必须有一个带 HORIZONTAL_SCROLL 的 Horizo​​ntalFieldManager(中间一个) 例如HorizontalFieldManager hfm = new HorizontalFieldManager( HORIZONTAL_SCROLL ); 在此管理器中添加您的自定义字段。

    您必须在自定义 OuterManager 中添加 hfm。

    我在这里发布我自己的代码供您参考...

    private class HScroll extends MainScreen{
            public HScroll() {
                super( USE_ALL_WIDTH );
                OuterManager father = new OuterManager( );
                LabelField ll = new LabelField("<");
                father.add(ll);
                HorizontalFieldManager hfm = new HorizontalFieldManager( HORIZONTAL_SCROLL );
                for( int i=0; i<10; i++ ){
                    ButtonField btn = new ButtonField(" i " + i);
                    hfm.add(btn);
                }
                father.add(hfm);
                LabelField ll1 = new LabelField(">");
                father.add(ll1);
                add(father);
            }
    
            private class OuterManager extends net.rim.device.api.ui.Manager{
    
                public OuterManager() {
                    super(USE_ALL_WIDTH);
                }
    
                protected void sublayout(int width, int height) {
    
                    int x = 0;
                    Field ff = getField( 0 );
                    Field ff2 = getField( 2 );
                    setPositionChild(ff, x, 0);
                    layoutChild(ff, ff.getPreferredWidth(), ff.getPreferredHeight());
    
                    x = x + ff.getPreferredWidth();
                    Field ff1 = getField( 1 );
                    setPositionChild(ff1, x , 0);
                    layoutChild(ff1, width - ff.getPreferredWidth() - ff2.getPreferredWidth() , ff1.getPreferredHeight());
    
                    x = width - ff2.getPreferredWidth();
                    setPositionChild(ff2, x, 0);
                    layoutChild(ff2, ff2.getPreferredWidth(), ff2.getPreferredHeight());
    
                    setExtent(width, height);
                }
            }
        }
    

    【讨论】:

    • 还有一个选项可以实现这一点...使用 TableLayoutManager supportforums.blackberry.com/t5/Java-Development/…
    • 侧箭头()应该是 ButtonField 对象,而不是 LabelFields
    • 我意识到这是示例代码。问答网站的重点是提供好的样本作为答案。如果您使用LabelField 表示结束箭头,则用户无法单击它们进行滚动,这是正常行为。
    • HorizontalFieldManager上添加的所有项目都是ButtonFields时,我认为可以使用LabelFields作为侧箭头。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多