2

アプリのAndroidサポートライブラリからViewPagerを実装しましたが、何らかの理由で表示されなくなりました。アプリのレイアウトは少しネストされており、それがいくつかの問題を引き起こしていると確信しています。意味のあるコードだけに凝縮してみます。私のレイアウトインフレコード:

LinearLayout ll = (LinearLayout) findViewById(R.id.root);

View v = getLayoutInflater().inflate(R.layout.project_row, null);

TextView header = (TextView) v.findViewById(R.id.rowheader);
header.setText(rowHeader);

ViewPager projectRow = (ViewPager) v.findViewById(R.id.pager);
projectRow.setAdapter(new ProjectPagerAdapter(tiles));

LinePageIndicator lineIndicator = (LinePageIndicator)v.findViewById(R.id.pagerIndicator);
lineIndicator.setViewPager(projectRow);
lineIndicator.setStrokeWidth(7);
lineIndicator.setLineWidth(50);
lineIndicator.setSelectedColor(Color.parseColor("#555555"));
lineIndicator.setUnselectedColor(Color.parseColor("#DCDCDC"));

ll.addView(v);

project_row.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

<TextView
    android:id="@+id/rowheader"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="@color/SectionHeaderColor" />

<android.support.v4.view.ViewPager
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="280dp" />

<com.viewpagerindicator.LinePageIndicator
    android:id="@+id/pagerIndicator"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />

</LinearLayout>

このインフレコードを使用すると、ViewPagerは単独で機能します。

LinearLayout ll = (LinearLayout) findViewById(R.id.root);

View v = getLayoutInflater().inflate(R.layout.pageronlytest, null);
ViewPager vp = (ViewPager)v.findViewById(R.id.pager);
vp.setAdapter(new ProjectPagerAdapter(tiles));

ll.addView(v);

pageronlytest.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="280dp"
    android:orientation="vertical" >

<android.support.v4.view.ViewPager
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="280dp" />

</LinearLayout>
4

1 に答える 1

4

project_row.xmlで、の方向を明示的に宣言していません。つまりLinearLayout、デフォルトで「水平」になります。最初の要素(TextView)はmatch_parent/fill_parent幅を定義するため、他のすべての要素を効果的に右に押して画面から外します。

そうは言っても、あなたはおそらくに追加android:orientation="vertical"する必要がありLinearLayout、あなたは行ってもいいです。

于 2012-06-28T19:10:03.423 に答える