デフォルトでは、スクロールビューのフェーディングエッジは、その方向にスクロールできる場合にのみ表示されます。私はいつもそれを見えるようにすることができますか?Android ScrollViewフェーディングエッジ
私は上に何かのドロアブルを置いてはいけません。おそらく、いくつかのscrollview関数をオーバーライドすることで、組み込みのフェーディングエッジを使用してそれを達成したいと思います。予め
おかげ
デフォルトでは、スクロールビューのフェーディングエッジは、その方向にスクロールできる場合にのみ表示されます。私はいつもそれを見えるようにすることができますか?Android ScrollViewフェーディングエッジ
私は上に何かのドロアブルを置いてはいけません。おそらく、いくつかのscrollview関数をオーバーライドすることで、組み込みのフェーディングエッジを使用してそれを達成したいと思います。予め
おかげ
はい、ScrollViewを拡張し、これらのメソッドをオーバーライド(ドーナツ・リリース2は基づく):比較の便宜上
@Override
protected float getTopFadingEdgeStrength() {
if (getChildCount() == 0) {
return 0.0f;
}
return 1.0f;
}
@Override
protected float getBottomFadingEdgeStrength() {
if (getChildCount() == 0) {
return 0.0f;
}
return 1.0f;
}
、このフェージングエッジなどを短縮元のコードでありますリストの最後に近づいてください:
@Override
protected float getTopFadingEdgeStrength() {
if (getChildCount() == 0) {
return 0.0f;
}
final int length = getVerticalFadingEdgeLength();
if (mScrollY < length) {
return mScrollY/(float) length;
}
return 1.0f;
}
@Override
protected float getBottomFadingEdgeStrength() {
if (getChildCount() == 0) {
return 0.0f;
}
final int length = getVerticalFadingEdgeLength();
final int bottomEdge = getHeight() - mPaddingBottom;
final int span = getChildAt(0).getBottom() - mScrollY - bottomEdge;
if (span < length) {
return span/(float) length;
}
return 1.0f;
}
あなたの質問への回答を投票して受け入れることを忘れないでください。 – cdhabecker
これは、「フェーディングエッジを完全に隠したい場合」の回答になる可能性があります。華麗な感謝!!!しかし、Androidを簡単に行う方法があるはずです:P –
あなたはどうしたらいいですか?フェーディング効果は、ユーザがその方向にスクロールできることを通知するという特定の目的のために設計されています。フェーディングエッジを常に表示するように変更した場合、ユーザーは任意の方向にスクロールして、可能でないときに何かが壊れていると思うと思います。 –