有没有设置默认微调器位置的方法,我只想在微调器标题下面显示我的微调器窗口,但通常当我们点击微调器时,标题上方的窗口弹出窗口,那么有没有办法显示弹出窗口在标题下面。
答案 0 :(得分:3)
对于这个微调器,您可以像这样使用
android:dropDownVerticalOffset="40dp"
<android.support.v7.widget.AppCompatSpinner
android:spinnerMode="dropdown"
android:dropDownVerticalOffset="40dp"
android:layout_width="match_parent"
android:layout_height="fill_parent"/>
现在下拉将根据您的要求显示。
答案 1 :(得分:2)
我更喜欢使用这种方法而不是处理ViewTreeObserver
mSortingSpinner.post(new Runnable() {
@Override
public void run() {
mSortingSpinner.setDropDownVerticalOffset(mSortingSpinner.getDropDownVerticalOffset() + mSortingSpinner.getHeight());
}
});
答案 2 :(得分:1)
对于下拉列表微调器模式,您可以使用:
mSortingSpinner.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
mSortingSpinner.setDropDownVerticalOffset(
mSortingSpinner.getDropDownVerticalOffset() + mSortingSpinner.getHeight());
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) {
mSortingSpinner.getViewTreeObserver().removeOnGlobalLayoutListener(this);
} else {
mSortingSpinner.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
}
});
通过微调器高度设置下拉列表的垂直偏移量。
答案 3 :(得分:0)
以下是 Rami El-bouhi 的 Kotlin 方式的代码:
spinner.post {
dropDownVerticalOffset += height
}