为什么我动态创建的网格只显示了一个scroll bar?
我刚学symbian开发,最近看得我头都大了,都快给它整疯了。。。
言归正传:
我用如下方法创建一个grid,但结果程序只在屏幕右边显示了一个scroll bar!!有谁知道原因啊?!我整了一个晚上了。。。
1. 创建 data model,
iGridModel = new (ELeave) CAknGridM;
2. 创建 grid,
iGrid = new (ELeave) CAknGrid;
3. 将 model 与 grid 关联起来,
iGrid->SetModel( iGridModel );
4. 构造 grid,并将 grid 与父控件关联起来,
iGrid->ConstructL( this, EAknListBoxSelectionGrid );
5. 设置 grid 的布局和滚动,
iGrid->SetLayoutL( EFalse, ETrue, ETrue, 3/*rows*/ , 3/*columns*/, TSize( 70, 70 )/*cellsize*/, 10/*wspace*/, 10/*hspace*/ );
iGrid->SetPrimaryScrollingType( CAknGridView::EScrollIncrementLineAndLoops );
iGrid->SetSecondaryScrollingType( CAknGridView::EScrollIncrementLineAndLoops );
AknListBoxLayouts::SetupStandardGrid( *iGrid );
6. 向 model 添加数据,也就是 grid 的 item,
iItemArray = static_cast<CDesCArray*>( iGridModel->ItemTextArray() );
RBuf item;
CleanupClosePushL( item );
item.Create( aItemName );
item.Format( KMmMplListFormat, aIconIndex, &item );
iItemArray->AppendL( item );
CleanupStack::Pop( &item );
iGrid->HandleItemAdditionL();