0

少し変更を加えて、アプリにCaldroidカレンダーを実装しようとしています。そこにカスタムViewPagerがあります:

    <com.antonyt.infiniteviewpager.InfiniteViewPager
            android:id="@+id/months_infinite_pager"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="-10dp"/>

Pager は、1 つの親レイアウトの下にあります。私が望んでいたのは、マージンまたはパディングを使用してページャーを親の中に配置することでした。サイド (左、右) マージンまたはパディングを設定すると、ViewPageronMeasure()メソッド内のどこかでアプリがループするようです。

ViewPager がサイド マージン/パディング セットを持つ親を持つことができないという情報が見つかりません。onMeasure()現在は super.onMeasure(widthMeasureSpec, heightMeasureSpec) のみが含まれており、何らかの理由でネイティブ ライブラリでループしているようです。マージン/パディングなしでは起こりません

4

1 に答える 1

0

問題はコンテナのレイアウトにありました:

    <LinearLayout
        android:id="@+id/right_page"
        android:layout_width="1dp"
        android:layout_height="match_parent"
        android:layout_weight="0.5"
        android:orientation="vertical" >

画面の半分を占めているだけのレイアウトです。問題があったようandroid:layout_width="1dp"です。android:layout_width="200dp"助けに変更。200、100、またはその他の数値であるかどうかは問題ではありません。ViewPager は最初に 1 dp に配置され、次にパーセンテージ幅から再計算されたと思いますが、推測するだけです

于 2013-05-31T18:09:47.990 に答える