(私はいくつかの関連する質問を見てきましたが、答えがないので、誰かが同様のことをしたか、正しい方向に私を向けることができる奇妙なチャンスにこれを出します...)
標準の Android SlidingDrawer (および私が使用しているAlessandro Crugnola の多方向バリアントも) は、ハンドルを中央に揃えます。ハンドルを右または左に揃えるオプションを提供する SlidingDrawer を実装した人はいますか?.または、これについてのヒントはありますか?
(私はいくつかの関連する質問を見てきましたが、答えがないので、誰かが同様のことをしたか、正しい方向に私を向けることができる奇妙なチャンスにこれを出します...)
標準の Android SlidingDrawer (および私が使用しているAlessandro Crugnola の多方向バリアントも) は、ハンドルを中央に揃えます。ハンドルを右または左に揃えるオプションを提供する SlidingDrawer を実装した人はいますか?.または、これについてのヒントはありますか?
それを解決しました。SlidingDrawer (または使用している SlidingDrawer のバリアント) のメソッドの is true 条件では、次のコード行を見つける必要がありますmVertical
...onLayout(boolean changed, int l, int t, int r, int b)
handleLeft = (width - childWidth) / 2;
...ハンドルを中央に揃えます。これを次のように変更します...
handleLeft = l;
... スライド式引き出しが垂直方向 (つまり、下から上または上から下) にスライドするように設定されている場合に、ハンドルを左揃えにするか、または次のように変更します...
handleLeft = r - handleWidth;
...ハンドルを右揃えにします。
同様に、スライド ドロワーが水平にスライドするように設定されている場合 (つまり、右から左または右から左)、メソッドのmVertical
is false 条件でonLayout(boolean changed, int l, int t, int r, int b)
、次のコード行を見つけます...
handleTop = (height - childHeight) / 2;
...そしてそれを...に変更します
handleTop = t;
...ハンドルを上に揃える、または...
handleTop = b - handleHeight;
...ハンドルを下揃えにします。ハッピーコーディング!
デフォルト(垂直)方向を使用していると仮定します。ドロワー ハンドルを左に移動する場合は、スライド ドロワーの android:layout_marginRight 値を正の数に設定します。ハンドルを右に移動する場合は、反対の android:layout_marginLeft を実行します。引出し自体に左右の並びはありません。より動的な配置が必要な場合は、レイアウトを使用して目的の効果を得る必要があります。