0

時間を選択するための 2 つのスクロール ホイールをメイン ビューに配置したいと考えています。もの?http://code.google.com/p/mobiscroll/に似ていますが、Android に組み込まれています。タイム ピッカーは非常に面倒です。必要なものを選択するまで +- を押す必要があります。私はより直感的なものを好みます。そのようなことのためにどのようなオプションが存在しますか?

4

3 に答える 3

0

ここにあなたのhour_listViewがあります。ストリングアダプターをセットするだけです。ArrayAdapter を使用して listView にデータを入力できると仮定します。

        hr_list.setOnScrollListener(new OnScrollListener() {

            int currentcount,topitem,firstitem,lastitem;
            @Override
            public void onScrollStateChanged(AbsListView view, int scrollState) {
                if (scrollState == SCROLL_STATE_IDLE && currentcount == 4) {
                    while (scrollState == SCROLL_STATE_TOUCH_SCROLL) {
                    }

                    LinearLayout item = (LinearLayout) view.getChildAt(0);
                    int height = item.getHeight();
                    int top = Math.abs(item.getTop()); // top is a negative value

                    if (top <= height/2){
                        view.smoothScrollToPositionFromTop(topitem, 0, 3000);
                        Log.d("Switch", "up");
                    }
                    if(top> height/2){
                        view.smoothScrollToPositionFromTop(topitem+1, 0,3000);
                        Log.d("Switch", "down");
                    }
                }
            }

そして、button.clickListener を設定すると、表示されている listView の中央の行番号が取得されます。

int list_hr = hr_list.getFirstVisiblePosition() - hr_list.getHeaderViewsCount();

いくつかの重要なポイント。* listView 1dp の仕切りの高さを設定します。*listView 内に侵入するために Linear レイアウトを使用します。

リストビューとボタンの XML

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:text="Snap List"
    android:textSize="25sp" />

<ListView
    android:id="@+id/listView1"
    android:layout_width="100dp"
    android:layout_height="120dp"
    android:fadingEdgeLength="33dp"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/textView1"
    android:layout_marginTop="73dp"
    android:background="@drawable/lisbg"
    android:scrollbars="none" >
</ListView>

<StackView
    android:id="@+id/stackView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/listView1"
    android:layout_marginLeft="103dp"
    android:layout_marginTop="57dp"
    android:layout_toRightOf="@+id/textView1" >
</StackView>

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/textView1"
    android:layout_marginRight="58dp"
    android:text="OK" />

<Button
    android:id="@+id/button2"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/button1"
    android:layout_below="@+id/button1"
    android:text="Scroll 5" />

行の XML。

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="40dp"
    android:textSize="25sp"
    android:gravity="center_vertical|center_horizontal"
    android:layout_gravity="center_vertical|center_horizontal"
    android:text="TextView" />

于 2013-02-22T13:28:28.500 に答える
0

何も組み込まれていませんが、これを試すことができます: http://code.google.com/p/android-wheel/

于 2013-02-22T11:16:49.500 に答える
0

ここには、ソース コードを含む完全なプロジェクトがあります。 TestWheel.zip

  1. TestWheel.zipリンクからダウンロードしてください。
  2. Eclipseにインポートします
  3. このプロジェクトをライブラリ プロジェクトに変換します (testWheel プロジェクトを右クリック ==> プロパティ ==> android ==>is libraryチェック ボックスをオンにします)。
  4. このライブラリ プロジェクトをプロジェクトに追加します。
  5. 次のコードをコピーして XML ファイルに貼り付けます。

ここに画像の説明を入力

于 2013-02-22T11:31:39.540 に答える