此代码及其细微变化存在于网络上的许多论坛中。当我在三星 Galaxy Tab 2 (Android 4.1.1) 上启动它时,会出现条形图,可以移动拇指,报告位置等。一切都很好,除了拇指永远不会消失。我的显示为一个蓝色的小圆圈,我可以沿着条形滑动它,但它会在它后面留下“拇指”的痕迹:在搜索栏范围内的每个可能的整数位置上都有一个。
代码不完整吗?我们必须添加一些东西来手动重绘组件吗?
import android.app.Activity;
import android.os.Bundle;
import android.widget.SeekBar;
import android.widget.TextView;
public class FullscreenActivity
extends Activity
implements SeekBar.OnSeekBarChangeListener {
SeekBar seekBar;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fullscreen);
seekBar=(SeekBar)findViewById(R.id.seekbar);
textView=(TextView)findViewById(R.id.textview);
seekBar.setOnSeekBarChangeListener(this);
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// Notify that the progress level has changed.
textView.setText(textView.getText()+"\n"+"SeekBar now at the value of:"+progress);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// placeholder
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// placeholder
}
}
这是布局:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/FrameLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<SeekBar
android:id="@+id/seekbar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="75dp"
android:max="31"
android:progress="15" />
<TextView
android:id="@+id/textview"
android:layout_width="fill_parent"
android:layout_height="270dp"
android:layout_marginTop="150dp"
android:scrollbarStyle="insideOverlay"
android:scrollbars="vertical" />
</FrameLayout>
效果截图:
更新在运行 Android 2.2 的 ZTE-BLADE 上效果相同。当然,默认图形是不同的(灰色/橙色搜索栏,“拇指”更方形),但拇指在我滚动浏览的所有点上都保持在后面。
如果我改变屏幕方向,残留的垃圾就会清除,这让我觉得它只需要重绘。任何人都可以帮忙吗?