本文整理汇总了Java中android.support.v4.view.MarginLayoutParamsCompat.resolveLayoutDirection方法的典型用法代码示例。如果您正苦于以下问题:Java MarginLayoutParamsCompat.resolveLayoutDirection方法的具体用法?Java MarginLayoutParamsCompat.resolveLayoutDirection怎么用?Java MarginLayoutParamsCompat.resolveLayoutDirection使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类android.support.v4.view.MarginLayoutParamsCompat
的用法示例。
在下文中一共展示了MarginLayoutParamsCompat.resolveLayoutDirection方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: fillMarginLayoutParams
import android.support.v4.view.MarginLayoutParamsCompat; //导入方法依赖的package包/类
/**
* Fills {@code ViewGroup.MarginLayoutParams} dimensions and margins based on percentage
* values.
*/
public void fillMarginLayoutParams(View view, ViewGroup.MarginLayoutParams params,
int widthHint, int heightHint) {
fillLayoutParams(params, widthHint, heightHint);
// Preserve the original margins, so we can restore them after the measure step.
mPreservedParams.leftMargin = params.leftMargin;
mPreservedParams.topMargin = params.topMargin;
mPreservedParams.rightMargin = params.rightMargin;
mPreservedParams.bottomMargin = params.bottomMargin;
MarginLayoutParamsCompat.setMarginStart(mPreservedParams,
MarginLayoutParamsCompat.getMarginStart(params));
MarginLayoutParamsCompat.setMarginEnd(mPreservedParams,
MarginLayoutParamsCompat.getMarginEnd(params));
if (leftMarginPercent >= 0) {
params.leftMargin = (int) (widthHint * leftMarginPercent);
}
if (topMarginPercent >= 0) {
params.topMargin = (int) (heightHint * topMarginPercent);
}
if (rightMarginPercent >= 0) {
params.rightMargin = (int) (widthHint * rightMarginPercent);
}
if (bottomMarginPercent >= 0) {
params.bottomMargin = (int) (heightHint * bottomMarginPercent);
}
boolean shouldResolveLayoutDirection = false;
if (startMarginPercent >= 0) {
MarginLayoutParamsCompat.setMarginStart(params,
(int) (widthHint * startMarginPercent));
shouldResolveLayoutDirection = true;
}
if (endMarginPercent >= 0) {
MarginLayoutParamsCompat.setMarginEnd(params,
(int) (widthHint * endMarginPercent));
shouldResolveLayoutDirection = true;
}
if (shouldResolveLayoutDirection && (view != null)) {
// Force the resolve pass so that start / end margins are propagated to the
// matching left / right fields
MarginLayoutParamsCompat.resolveLayoutDirection(params,
ViewCompat.getLayoutDirection(view));
}
if (Log.isLoggable(TAG, Log.DEBUG)) {
Log.d(TAG, "after fillMarginLayoutParams: (" + params.width + ", " + params.height
+ ")");
}
}