0

GridView コード:

<GridView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/activity_graph"
        android:verticalSpacing="0dip"
        android:horizontalSpacing="5dip"
        android:stretchMode="columnWidth"
        android:gravity="center"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#0000FF">
        </GridView>

GridItem コード:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@+id/GridItem"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical"
                android:gravity="center_horizontal"
                android:paddingTop="20px"
                android:paddingBottom="20px"
                android:background="#00FF00">


    <TextView android:id="@+id/grid_item_vote_count"

              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:gravity="center_horizontal"
              android:layout_centerHorizontal="true">
    </TextView>

    <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#ABABAB">

    <TextView android:id="@+id/grid_item_answer"
              android:layout_alignParentBottom="true"
              android:layout_width="match_parent"
              android:layout_height="150dp"
              android:gravity="center_horizontal"
              android:layout_centerHorizontal="true"
              android:focusable="true"
              android:focusableInTouchMode="true"
              android:fadeScrollbars="false"
              android:scrollbars="vertical"
              >
    </TextView>

    <ImageView android:id="@+id/grid_item_bar"
               android:layout_width="20px"
               android:layout_above="@id/grid_item_answer"
               android:layout_height="wrap_content"
               android:layout_centerHorizontal="true"
               >
    </ImageView>

    </RelativeLayout>

</LinearLayout>

アダプタ:

 @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View myView  = null;
        float height = parent.getHeight();
        if(convertView==null) {
            LayoutInflater li = (LayoutInflater) parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            myView = li.inflate(R.layout.grid_item, null);

        }else{
            myView = convertView;
        }
        myView.setMinimumHeight((int)height);

        int numVotes = -1;
        String answer = answerText[position];

        switch(position) {
            case 0:
                numVotes = answerCount1;
                break;
            case 1:
                numVotes = answerCount2;
                break;
            case 2:
                numVotes = answerCount3;
                break;
            case 3:
                numVotes = answerCount4;
                break;
            default:
                Log.d("JK", "Getting view for too high position");
        }

        TextView tv = (TextView) myView.findViewById(R.id.grid_item_vote_count);
        tv.setText(Integer.toString(numVotes));
        tv.setTextColor(Color.BLACK);
        int barHeight = (int) (0.7f * height * ((float) numVotes / maxVotes));

        ImageView imageView =(ImageView) myView.findViewById(R.id.grid_item_bar);
        imageView.setImageDrawable(new ColorDrawable(getColor(position)));
        RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) imageView.getLayoutParams();
        params.height = barHeight;
        imageView.setLayoutParams(params);
        //imageView.setLayoutParams(new RelativeLayout.LayoutParams(16, barHeight));

        tv = (TextView) myView.findViewById(R.id.grid_item_answer);
        tv.setText(answer);
        tv.setTextColor(Color.BLACK);
        tv.setMovementMethod(ScrollingMovementMethod.getInstance());

        return myView;
    }

上記で、回答のテキストビューに垂直スクロールバーが表示されますが、テキストビューをスクロールするには、テキストビューの特定の部分に指を移動する必要があるようです。テキストビューを上にスワイプしてから約 1 分後に、一度スクロールできるようになるかもしれません。これを修正する方法はありますか、またはテキストビュー全体でスクロールできるようにする方法はありますか? お時間をいただきありがとうございます。

4

1 に答える 1

0

確かではありませんが、おそらく、内部の textviews の 1 つをスクロール可能にしたためであり、親の AdapterView のスクロール プロパティが混乱します。

<TextView android:id="@+id/grid_item_answer"
          android:layout_alignParentBottom="true"
          android:layout_width="match_parent"
          android:layout_height="150dp"
          android:gravity="center_horizontal"
          android:layout_centerHorizontal="true"
          android:focusable="true"  //<-- this
          android:focusableInTouchMode="true" //<--- this
          android:fadeScrollbars="false" //<-- this
          android:scrollbars="vertical"  //<--- this
          >
于 2013-07-06T18:44:18.363 に答える