私はアプリケーションを書いていますが、次のようになります。
上に SeekBar があり、下の HorizontalScrollView にいくつかのボタンがあることがわかります。SeekBar を使用してボタンをスクロールしたいのですが、これで問題なく動作しますが、ビューをスクロールするデフォルトの方法 (画面をドラッグする) をオフにすることはできません。フォーラムで同様のトピックを見つけました:
しかし、問題は、この方法でScrollView全体をロックし、seekBarとデフォルトの方法で使用できないことです-おそらく私は何か間違ったことをしています(リンクと同じようにしましたが、mScrollableでTRUEを持っていても、これはうまくいきません)パラメータ)。2 番目の問題は、(fill_parent の高さパラメーターを持つ) ボタンが非常に小さいことです。
質問: デフォルトの方法でスクロール ビューをロックし、SeekBar を使用してこれを行う良い方法はありますか??
マイコード (デフォルトの HorizontalScrollView):
public class MainActivity extends Activity implements SeekBar.OnSeekBarChangeListener {
static private String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
SeekBar seek = (SeekBar) findViewById(R.id.seekBar);
final HorizontalScrollView hsv = (HorizontalScrollView)findViewById(R.id.hsv);
seek.setMax(948);
seek.setProgress(474);
seek.setOnSeekBarChangeListener(this);
hsv.post(new Runnable() {
@Override
public void run() {
hsv.scrollTo(474, 0);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch) {
HorizontalScrollView hsv = (HorizontalScrollView)findViewById(R.id.hsv);
hsv.scrollTo(progress, 0);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
Log.d(TAG, "Tracking on");
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
Log.d(TAG, "Tracking off");
}
アクティビティ_メイン:
<?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="fill_parent"
android:background="#0A0A0A"
android:orientation="vertical" >
<SeekBar
android:id="@+id/seekBar"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<HorizontalScrollView
android:id="@+id/hsv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scrollbars="none" >
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<!-- BUTTONS CODE - NOT IMPORTANT -->
</RelativeLayout>
</HorizontalScrollView>
</LinearLayout>