我書面方式申請,它看起來像這樣:鎖定水平滾動型 - Android電子
怎麼可以看到有搜索欄在下方HorizontalScrolView頂部和幾個按鈕。我想用搜索欄,以滾動按鈕,現在這工作得很好,但我不能關閉默認的方式來滾動視圖(draginng屏幕)。我發現論壇similat話題:
但問題是,這種方式鎖定整個滾動型,我不能被搜索欄和默認的方式使用它 - 也許我做錯事(我做到了就像在鏈接中一樣,即使我在mScrollable參數中有TRUE,也不是wort)。第二個問題是我的按鈕(它具有fill_parent高度參數)非常小。
問:還有就是要鎖定滾動視圖中默認的方式,並使用搜索欄來做到這一點沒有什麼好的辦法?
我的代碼(默認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");
}
activity_main:
<?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>
這工作,解決自己的問題,但它使一個又一個 - 現在我不能使用的按鍵; /我嘗試使用onDragListener代替onTouchLister但它崩潰我的應用程序; /任何想法?我想過檢查X和Y,並檢查它應該是哪個按鈕,並做我的方法,但它不是太好,我認爲 – CookieMonssster
@CookieMonssster是的,沒有想太多。我編輯了我的答案,看看是否有效。 – Luksprog
THX給你很大。現在它工作正常;) – CookieMonssster