如何在微调器下方设置微调器 window 位置
How to set spinner window position on below of a spinner
有没有设置默认微调器位置的方法,我只想在微调器标题下方显示我的微调器 window,但通常当我们单击微调器时,标题上方的 window 弹出窗口,那么有什么方法可以在标题下方显示弹出窗口。
对于 下拉菜单 微调框模式,你可以使用这个:
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);
}
}
});
这会根据微调器高度设置下拉菜单的垂直偏移量。
对于这个微调器,你可以这样使用
android:dropDownVerticalOffset="40dp"
<android.support.v7.widget.AppCompatSpinner
android:spinnerMode="dropdown"
android:dropDownVerticalOffset="40dp"
android:layout_width="match_parent"
android:layout_height="fill_parent"/>
现在下拉将根据您的要求显示。
我更喜欢使用这种方法而不是处理 ViewTreeObserver
mSortingSpinner.post(new Runnable() {
@Override
public void run() {
mSortingSpinner.setDropDownVerticalOffset(mSortingSpinner.getDropDownVerticalOffset() + mSortingSpinner.getHeight());
}
});
这里是 Rami El-bouhi 的 Kotlin 方式的代码:
spinner.post {
dropDownVerticalOffset += height
}
有没有设置默认微调器位置的方法,我只想在微调器标题下方显示我的微调器 window,但通常当我们单击微调器时,标题上方的 window 弹出窗口,那么有什么方法可以在标题下方显示弹出窗口。
对于 下拉菜单 微调框模式,你可以使用这个:
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);
}
}
});
这会根据微调器高度设置下拉菜单的垂直偏移量。
对于这个微调器,你可以这样使用
android:dropDownVerticalOffset="40dp"
<android.support.v7.widget.AppCompatSpinner
android:spinnerMode="dropdown"
android:dropDownVerticalOffset="40dp"
android:layout_width="match_parent"
android:layout_height="fill_parent"/>
现在下拉将根据您的要求显示。
我更喜欢使用这种方法而不是处理 ViewTreeObserver
mSortingSpinner.post(new Runnable() {
@Override
public void run() {
mSortingSpinner.setDropDownVerticalOffset(mSortingSpinner.getDropDownVerticalOffset() + mSortingSpinner.getHeight());
}
});
这里是 Rami El-bouhi 的 Kotlin 方式的代码:
spinner.post {
dropDownVerticalOffset += height
}