0

我研究了所有提出的解决方案。但我无法滚动查看下面的代码。

任何人都可以帮助..

<ScrollView
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:fillViewport="true">

    <LinearLayout 
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:background="#1A2736"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:layout_height="wrap_content">

        <TextView ..../>

        <GridView...../>

    </LinearLayout>
</ScrollView>
4

1 回答 1

0
Try this for custom grid view with label :

     main.xml
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="top"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:background="@drawable/appbase"
    tools:context=".MainActivity" >

    <LinearLayout 
         android:layout_width="fill_parent"
         android:background="@drawable/apphome"
         android:layout_height="fill_parent"
        >
    <GridView
        android:layout_marginTop="35dp"
        android:id="@+id/grid"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:columnWidth="100px"
        android:gravity="center"
        android:horizontalSpacing="20dp"
        android:numColumns="3"

        android:stretchMode="columnWidth"
        android:verticalSpacing="100dp" />
</LinearLayout>
</LinearLayout>



this is the custom layout for each grid view item 

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

    <ImageView
        android:id="@+id/image"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:scaleType="centerInside" />

    <TextView
        android:id="@+id/text"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center" />

    </LinearLayout>


This is the adapter class 


    public class GridviewAdapter extends BaseAdapter
    {
    private ArrayList<String> listCountry;
    private ArrayList<Integer> listFlag;
    private Activity activity;

    public GridviewAdapter(Activity activity,ArrayList<String> listCountry, ArrayList<Integer> listFlag) {
        super();
        this.listCountry = listCountry;
        this.listFlag = listFlag;
        this.activity = activity;
    }

    @Override
    public int getCount() {
        return listCountry.size();
    }

    @Override
    public String getItem(int position) {
        return listCountry.get(position);
    }

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

    public static class ViewHolder
    {
        public ImageView imgViewFlag;
        public TextView txtViewTitle;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder view;
        LayoutInflater inflator = activity.getLayoutInflater();

        if(convertView==null)
        {
            view = new ViewHolder();
            convertView = inflator.inflate(R.layout.gridlayout, parent,false);

            view.txtViewTitle = (TextView) convertView.findViewById(R.id.text);
            view.imgViewFlag = (ImageView) convertView.findViewById(R.id.image);



            convertView.setTag(view);
        }
        else
        {
            view = (ViewHolder) convertView.getTag();
        }

        view.txtViewTitle.setText(listCountry.get(position));
        view.imgViewFlag.setImageResource(listFlag.get(position));

        return convertView;
    }

    }


and this is the gridveiactivity class ..

public class MainActivity extends Activity  {


private GridviewAdapter mAdapter;
private ArrayList<String> listCountry;
private ArrayList<Integer> listFlag;

private GridView gridView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
     prepareList();

        mAdapter = new GridviewAdapter(this,listCountry, listFlag);

        gridView = (GridView) findViewById(R.id.grid);
        gridView.setAdapter(mAdapter);

        gridView.setOnItemClickListener(new OnItemClickListener() 
        {
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int position,
                    long arg3) {
                Toast.makeText(MainActivity.this, mAdapter.getItem(position), Toast.LENGTH_SHORT).show();
            }
        });

    }

}
于 2013-06-25T14:10:34.937 回答