1

ページ 1 に 10 のレコードを表示し、次にページ 2 に次の 10 のレコードを表示する、ページネーションを実装したいTableLayout...テーブル レイアウトを使用していますが、必要な結果が得られません。チュートリアルを使用すると、テーブルは垂直方向ではなく水平方向にのみ成長します。垂直方向にも拡大し、レコード サイズが 10 を超えると次のページに移動するように変更するにはどうすればよいですか?

コード:

public class Sample extends Activity {
 String companies[] = {"Google","Windows","iPhone","Nokia","Samsung",
         "Google","Windows","iPhone","Nokia","Samsung",
         "Google","Windows","iPhone","Nokia","Samsung","Google","Windows","iPhone","Nokia","Samsung",
         "Google","Windows","iPhone","Nokia","Samsung",
         "Google","Windows","iPhone","Nokia","Samsung"};
 String os[]       =  {"Android","Mango","iOS","Symbian","Bada",
         "Android","Mango","iOS","Symbian","Bada",
         "Android","Mango","iOS","Symbian","Bada","Android","Mango","iOS","Symbian","Bada",
         "Android","Mango","iOS","Symbian","Bada",
         "Android","Mango","iOS","Symbian","Bada"};
 TextView companyTV,valueTV,deviceTv,actionTv,dateTv,timeTv,creditTv;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // creates the Pagination Layout
    PaginationLayout paginationLayout = new PaginationLayout(this);
    paginationLayout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

    // creates content only for sample
    TableLayout table = new TableLayout(this);
    //table.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));


    TableRow row = new TableRow(this);
    row.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
    table.addView(row);

    TableRow row2 = new TableRow(this);
    row2.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
    table.addView(row2);
    for (int i=0;i<companies.length;i++)
    {
        deviceTv = new TextView(this);
        deviceTv.setText(companies[i]);
        deviceTv.setTextColor(Color.RED);
        deviceTv.setTypeface(Typeface.DEFAULT, Typeface.BOLD);

        deviceTv.setPadding(5, 5, 5, 5);
        row2.addView(deviceTv);
        actionTv = new TextView(this);
        actionTv.setText(os[i]);
        actionTv.setTextColor(Color.GREEN);

        actionTv.setPadding(5, 5, 5, 5);
        actionTv.setTypeface(Typeface.DEFAULT, Typeface.BOLD);
        row2.addView(actionTv); // Adding textView to tablerow.
    }

   /* for(int i = 0; i< 50;i++){
        Button button = new Button(this);
        button.setText("Button " + i);
        if (i%2==0) {
            row.addView(button);
        } else {
            row2.addView(button);
        }
    }*/

    // add the content in pagination
    paginationLayout.addView(table);
    // set pagination layout
    setContentView(paginationLayout);
}
4

1 に答える 1

1

既にテーブル レイアウトを使用していますが、このチュートリアルを使用して必要な結果が得られません。垂直方向ではなく水平方向に成長するだけです。

github のコードでは、addViewonを使用すると、PaginationLayoutそのビューがHorizontalScrollView. 行を追加するシングル を作成しているコードTablelayoutのように、コンテンツが垂直方向に大きくなるのは正常です。

ほとんどの場合、次のように自分でページを挿入する必要があります。

// creates the Pagination Layout
PaginationLayout paginationLayout = new PaginationLayout(this);
LinearLayout wrapper = new Linearlayout(this);
paginationLayout.addView(wrapper);
// now create a TableLayout, if the content is bigger then your intended number of rows
// then insert another Tablelayout and so on
TableLayout table = new TableLayout(this);
    //table.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
TableRow row = new TableRow(this);
row.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
table.addView(row);
TableRow row2 = new TableRow(this);
row2.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
table.addView(row2);
wrapper.addView(table); // it will probably don't look good if you don't 
// also setup the proper width with LayoutParams

追加を続けて、テーブルTableRowsに10 行追加したことがわかった場合は、新しい行を作成してラッパーに追加します。TableLayout LinearLayout

そのライブラリを削除して、独自のページネーションを実装することをお勧めします。ユーザーからの直接的な操作 (タッチによる) がない場合ViewFlipperは、ページネーションを制御するために下部に 2 つのボタンを使用して (2 つのビュー、2 つのページをめくっていきます) を設定するのは非常に簡単です。タッチ操作も必要な場合は、 a を使用しますViewPager(もう少し作業が必要です)。

于 2013-03-20T13:17:08.530 に答える