如何在Blackberry中使用文本字段创建水平滚动视图

如何在Blackberry中使用文本字段创建水平滚动视图,blackberry,textfield,horizontalscrollview,Blackberry,Textfield,Horizontalscrollview,我是黑莓领域的新手,我想创建一个定制的水平滚动视图,它应该与下图完全相同。任何帮助都将受到感谢 我正在使用黑莓模拟器9900,提前谢谢。我想中间部分只能滚动,对吗 您必须有一个带有水平滚动中间一个的水平字段管理器 e、 g.HorizontalFieldManager hfm=新的HorizontalFieldManager水平滚动; 在此管理器中添加自定义字段 您必须在自定义OuterManager中添加hfm 作为你的参考,我在这里发布我自己的代码 private class HScroll

我是黑莓领域的新手,我想创建一个定制的水平滚动视图,它应该与下图完全相同。任何帮助都将受到感谢


我正在使用黑莓模拟器9900,提前谢谢。

我想中间部分只能滚动,对吗

您必须有一个带有水平滚动中间一个的水平字段管理器 e、 g.HorizontalFieldManager hfm=新的HorizontalFieldManager水平滚动; 在此管理器中添加自定义字段

您必须在自定义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,侧箭头<和>应该是ButtonField对象,而不是LabelFields。我知道这是示例代码。Q+a网站的重点是提供好的样本作为答案。如果使用LabelField表示结束箭头,则用户无法单击它们进行滚动,这是正常行为。我认为,当HorizontalFieldManager上添加的所有项目都是按钮字段时,可以将LabelFields用作侧箭头。