आप अभी भी इसे की जरूरत है समझाया गया है फिर से difine करने के लिए है, मैं कस्टम विधि ने लिखा है, कस्टम दृश्य के बहुत सारे नहीं बनाने के लिए। यह TextView
साथ मेरे लिए काम करता है:
public static void applyExistingBotMarginFromBaseline(View view) {
final int baseline = view.getBaseline();
final int height = view.getHeight();
final ViewGroup.MarginLayoutParams marginLayoutParams;
try {
marginLayoutParams = ((ViewGroup.MarginLayoutParams) view.getLayoutParams());
} catch (ClassCastException e) {
throw new IllegalArgumentException("Applying margins on a view with wrong layout params.");
}
final int baselineMarginValue = baseline + marginLayoutParams.bottomMargin;
marginLayoutParams.bottomMargin = baselineMarginValue - height;
view.setLayoutParams(marginLayoutParams);
}
आप इसे लागू कर सकते हैं जब दृश्य तो इस तरह, पहले से ही मापा जाता है:
final TextView title = (TextView) findViewById(R.id.title);
title.post(new Runnable() {
@Override public void run() {
Utils.applyExistingBotMarginFromBaseline(title);
}
});
इसके अलावा, आप डेटा बाइंडिंग ढांचे का उपयोग और थोड़ा के साथ अपने स्वयं के कस्टम BindingAdapter
लिख सकते हैं xml से इसका उपयोग करने के लिए अनुकूलित विधि।
स्रोत
2016-10-10 16:52:57
क्या आपको उत्तर मिला? –