6

CustomComponent 拡張するクラスがありますViewGroup

のソース コードCustomComponent:

      public class CustomComponent extends ViewGroup {

            private static final String LOGTAG = "CustomComponent";

            private List<MenuItem> items;

            private Context context;

            private int screenWidth;
            private int screenHeight;
            private int cellWidth;
            private int cellHeight;
            private int duration;
        private int space=7;

       public CustomComponent(Context context) {
            super(context);
            this.context=context;
       }


             @Override
          protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
            Log.v(LOGTAG, "on Measure called");
             screenWidth = MeasureSpec.getSize(widthMeasureSpec);
              screenHeight = MeasureSpec.getSize(heightMeasureSpec);
              cellHeight=screenHeight/AppConstants.HEIDHTCELLSCOUNT;
              cellWidth=screenWidth/AppConstants.WIDTHCELLSCOUNT;
              duration= cellHeight*2;
             super.onMeasure(widthMeasureSpec, heightMeasureSpec+duration);

          }


           @Override
        protected void onLayout(boolean changed, int l, int t, int r, int b) {
            Log.v(LOGTAG, "onLayout called");
            int childCount = this.getChildCount();
                 for (int i = 0; i < childCount; i++) {
                      View child = getChildAt(i);
                          child.layout(items.get(i).getLeft(),items.get(i).getTop(),items.get(i).getRight(), items.get(i).getBottom());
        } 
      }

public List<MenuItem> getItems() {
        return items;
    }

    public void setItems(List<MenuItem> items) {
        this.items = items;
    }
    }

XML レイアウト:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" 
    android:id="@+id/menu_layout"
    android:scrollbars="vertical">
        <<package name>.CustomComponentandroid:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:id="@+id/menu_component"
            android:scrollbars="vertical"
            android:fadingEdge="vertical"/>
</LinearLayout>

これに垂直スクロールを追加する必要がありますViewGroup。助けてください、この問題を解決する方法がわかりません。 ここに画像の説明を入力

4

3 に答える 3

3

これを試して。ScrollView 内に LinearLayout が必要です。MenuComponent を LinearLayout 内に配置します。それはうまくいくはずです。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" 
    android:id="@+id/menu_layout"

    <ScrollView
        android:id="@+id/scrollView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <LinearLayout
            android:id="@+id/linearLayout1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >

            <<package name>.MenuComponent android:layout_height="wrap_content"
                android:layout_width="fill_parent"
                android:id="@+id/menu_component"
                android:scrollbars="vertical"
                android:fadingEdge="vertical"/>
        </LinearLayout>

    </ScrollView>
</LinearLayout>
于 2012-03-02T10:15:15.007 に答える
1

あなたのMenuComponent中にあなたを含めることを試みることができますScrollView

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" 
    android:id="@+id/menu_layout"
    android:scrollbars="vertical">
      <ScrollView android:id="@+id/ScrollView1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" >

        <<package name>.MenuComponent android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:id="@+id/menu_component"
            android:scrollbars="vertical"
            android:fadingEdge="vertical"/>
       </ScrollView>
</LinearLayout>
于 2012-03-01T11:54:21.663 に答える