1

ScrollPanel 内に Celltree があります。UIBinder で ScrollPanel のサイズを次のように設定します

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui">

   <g:ScrollPanel ui:field="panel" width="240px" height="1200px"></g:ScrollPanel>
</ui:UiBinder> 

私のJavaクラスには、次のものがあります:

@UiField ScrollPanel panel;
public Arborescence() {
     initWidget(uiBinder.createAndBindUi(this));


      // Create a model for the tree.
        TreeViewModel model = new CustomTreeModel();

        /*
         * Create the tree using the model. We specify the default value of the
         * hidden root node as "Item 1".
         */
        CellTree tree = new CellTree(model, "Item 1");         
        panel.add(tree);
}

私の問題は、CellTree にデータを入力すると、水平バーが表示されず、コンテンツがオーバーフローしても表示されないことです。垂直バーは正常に表示されています。

ありがとう

アップデート

FireBug を使用すると、問題の原因がわかりましたelement.style { overflow: hidden; }

私のCSSをオーバーライドするのはインラインCSSのようです。それを変更する方法はありますか?

4

2 に答える 2

5

LIENMAN78 のソリューションは少し複雑です。まあ...何時間も検索した後、私は簡単な解決策を見つけました.CellTreeをHorizo​​ntalPanel(またはVerticalPanel)にラップしてから、それをScrollPanelに追加します

ここに CellTree.ui.XML があります

<g:ScrollPanel  width="100%" height ="1200px">
             <g:HorizontalPanel ui:field="panel">
             </g:HorizontalPanel>
   </g:ScrollPanel>

そしてCellTree.javaの関連部分

...
@UiField HorizontalPanel panel; 
...
panel.add(cellTree)
于 2011-10-26T14:08:12.950 に答える
1

これは最も美しい解決策ではありませんが、ここで簡単な修正を行います。

/* fix horizontal scroll issue */
.cellTreeWidget>div,
   .cellTreeWidget>div>div>div>div>div,
   .cellTreeWidget>div>div>div>div>div>div>div>div>div
{
    overflow: visible !important;
}

CellTree.Style をオーバーライドする場合は .cellTreeWidget をそのまま保持できますが、手早く簡単に実行したい場合は、CellTree に追加したスタイル名に変更します。

これを一度だけ実行し、モジュール xml で replace-with を実行して、CellTree が内部で GWT.create(Resource.class) を呼び出したときに、修正されたバージョンに自動的に置き換えられるようにすることができます。

<replace-with class="com.foo.common.client.gwt.laf.resource.CellTreeResources">
    <when-type-is class="com.google.gwt.user.cellview.client.CellTree.Resources" />
</replace-with>


public class CellTreeResources implements CellTree.Resources
{
    @Override
    public ImageResource cellTreeClosedItem()
    {
        return CellBrowserResourcesImpl.INSTANCE.cellTreeClosedItem();
    }

    @Override
    public ImageResource cellTreeLoading()
    {
        return LoadingResource.INSTANCE.loadingBar();
    }

    @Override
    public ImageResource cellTreeOpenItem()
    {
        return CellBrowserResourcesImpl.INSTANCE.cellTreeOpenItem();
    }

    @Override
    public ImageResource cellTreeSelectedBackground()
    {
        return CellBrowserResourcesImpl.INSTANCE.cellTreeSelectedBackground();
    }

    @Override
    public Style cellTreeStyle()
    {
        return CellBrowserResourcesImpl.INSTANCE.cellTreeStyle();
    }

    public interface CellBrowserResourcesImpl extends CellTree.Resources
    {
        static final CellBrowserResourcesImpl INSTANCE = GWT.create(CellBrowserResourcesImpl.class);

        @Override
        @Source({ CellTree.Style.DEFAULT_CSS, "cellTree.css" })
        Style cellTreeStyle();
    }
}
于 2011-10-26T03:02:20.807 に答える