我在我的应用程序中使用了SeekBar。目前,此SeekBar在xml文件中定义:
<SeekBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/Base.Widget.AppCompat.SeekBar.Discrete"/>
它看起来不错,但我想以编程方式定义此元素,所以我已经添加了这个:
SeekBar seekBar = new SeekBar(getContext(), null, R.style.Widget_AppCompat_SeekBar_Discrete);
然后seekBar是不可见的。有谁知道什么是错的? 如果我只使用它,它就可见:
SeekBar seekBar = new SeekBar(getContext();
但我需要打勾。
答案 0 :(得分:0)
尝试将可见性设置为可见:
seekBar.setVisibility(VISIBLE);
并且请记住将其添加到布局(线性,相对等)
以编程方式添加视图时,必须将其添加到布局。否则它是不可见的,因为它没有添加到视图
答案 1 :(得分:0)
这对我有用:
首先,创建一个布局(例如layout_seekbar.xml):
<?xml version="1.0" encoding="utf-8"?>
<SeekBar
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/Widget.AppCompat.SeekBar.Discrete" />
然后,您可以以编程方式在代码中添加搜索栏:
SeekBar bar = (SeekBar)LayoutInflater.from(this).inflate(R.layout.layout_seekbar, null);
bar.setMax(10);
...
bar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
...
}
public void onStartTrackingTouch(SeekBar seekBar) {}
public void onStopTrackingTouch(SeekBar seekBar) {}
});
myLinearLayout.addView(bar);
打招呼,希望有帮助