0

私は水平スクロールのテキストビューリストを実装しています。サムページのある電子ブックのようなものです。TextView を表示する Gallery ウィジェットを使用します。最初に直面した問題は、各ページの左端と右端が丸く見えることです。

サンプルコードは次のとおりです。

main.xml

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

    <Gallery android:id="@+id/gallery" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"
        android:spacing="0px"/>         

</LinearLayout>

page.xml

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

    <TextView android:id="@+id/textView" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content"
        android:background="#000"/>

</LinearLayout>

GalleryActivity.java

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.TextView;

public class GalleryActivity extends Activity {

     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);

         Gallery gallery = (Gallery) findViewById(R.id.gallery);
         gallery.setAdapter(new GalleryAdapter(this));
     }

     private class GalleryAdapter extends BaseAdapter {

        private Context context; // needed to create the view

        public GalleryAdapter(Context c) {
            context = c;
        }

        public int getCount() {
            return 5;
        }

        public Object getItem(int position) {
            return position; //TODO: get the object on the position
        }

        public long getItemId(int position) {
            return position;
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            View v;

            if(convertView == null)
                v = LayoutInflater.from(context).inflate(R.layout.page, parent, false);
            else
                v = convertView;


            TextView tv = (TextView) v.findViewById(R.id.textView);
            tv.setText("Page" + position);

            return v;
        }
    }
}

たとえば、タイトルバーのようにページの端を取得する方法はありますか? たぶん、目標を達成するための別の方法はありますか?

4

1 に答える 1

0

page.xml では、givin match_parent の代わりに、レイアウトに fxd 幅を指定し、txtview に sm パディングを指定します。また、FYI ギャラリーは非推奨です。代わりにビュー ページャーを使用してください。View ページャーには互換性パッケージも付属しています:http://developer.android.com/tools/extras/support-library.html

fxd幅を指定できない場合は、パディングでのみ試すことができます。これにより、問題が解決する可能性があります

于 2012-07-21T04:25:51.623 に答える