1

3 つの異なる xml レイアウト間をスライドするギャラリー アプリケーションを作成しようとしています。アプリケーションはかなり間違っているように見えます:

ここに画像の説明を入力

私のXMLファイルは次のとおりです。

linear.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="vertical"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
    >
<EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="one"/>
<EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="two"
        android:gravity="center"
        android:layout_weight="1"/>
<EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="three"
        android:layout_gravity="right"/>
</LinearLayout>

table.xml:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent">
<TextView android:text="What is your name?"
          android:layout_height="wrap_content"
          android:layout_width="wrap_content"
          android:gravity="center"/>
<TableRow>
    <TextView android:text="@string/firstname"
              android:layout_height="wrap_content"
              android:layout_width="wrap_content" />
    <EditText android:text="John"
              android:layout_height="wrap_content"
              android:layout_width="wrap_content" />
</TableRow>
<TableRow>
    <TextView android:text="@string/lastname"
              android:layout_height="wrap_content"
              android:layout_width="wrap_content" />
    <EditText android:text="Poe"
              android:layout_height="wrap_content"
              android:layout_width="wrap_content" />
</TableRow>
</TableLayout>

and the gallery.xml:
<Gallery xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gallery"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>

BaseAdapter の私の実装:

public class LayoutsAdapter extends BaseAdapter {
    private LayoutInflater mInflater;

    public LayoutsAdapter(Context context) {
        mInflater = LayoutInflater.from(context);
    }

    @Override
    public int getCount() {
        return 3;
    }

    @Override
    public Object getItem(int i) {
        switch (i) {
            case 0:
                return R.layout.linear;
            case 1:
                return R.layout.table;
            case 2:
                return R.layout.relative;
            default:
                return -1;
        }
    }

    @Override
    public long getItemId(int i) {
        return i;
    }

    @Override
    public View getView(int i, View convertView, ViewGroup viewGroup) {
        convertView = mInflater.inflate((Integer)getItem(i), null);
        return convertView;
    }
}

私はアンドロイドに非常に慣れていないので、あなたの助けを楽しみにしています。

4

3 に答える 3

1

Jake Whartons ViewPageIndicator (または通常の ViewPager)を使用することをお勧めします。

すべてのレイアウトを作成し、フラグメント内のメソッドをFragment使用してレイアウトをフラグメントに設定します。onCreateView()

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
        Bundle savedInstanceState) {

        return inflater.inflate(R.layout.layout, container, false);
    }

と呼ばれるメソッドFragmentPagerAdapterがあるはずgetItem()です。位置を切り替えて、フラグメントに設定します。

    @Override public Fragment getItem ( int position){

        switch (position) {
            case 0:
                TestFragment fragment = new TestFragment();
                return fragment;

            case 1:
                TestFragment2 fragment2 = new TestFragment2();
                return fragment2;
        }

        return defaultFragment fragment3 = new defaultFragment();
        return fragment3;
    }

これで、レイアウト (フラグメント) に簡単にスワイプできるはずです

于 2012-09-10T18:32:23.277 に答える
1

ViewPager を使用する必要があると思います。ViewPager に関する次の情報を確認してください。

http://thepseudocoder.wordpress.com/2011/10/05/android-page-swiping-using-viewpager/

Fragments を ViewPager と組み合わせて使用​​することも検討してください。

しかし、ViewPager はあなたが探しているものだと思います。実際、独自のレイアウト作業を行うよりもはるかにスムーズです。

于 2012-09-10T18:28:34.363 に答える
0

あなたが試すことができます:

水平ページャー https://github.com/ysamlan/horizo​​ntalpager

また

リアル ビュー スイッチャー http://marcreichelt.blogspot.com/2010/09/android-use-realviewswitcher-to-switch.html

于 2012-09-10T18:44:29.970 に答える