Sprawdziłem wiele odpowiedzi, ale żadna nie pomogła do tej pory.Margines na niestandardowy TextView
Próbuję rozszerzyć TextView z Androidem i ustawić margines tego niestandardowego widoku wewnątrz kodu, ponieważ mam zamiar utworzyć je na przyciskach i podobnych rzeczach. Zostaje dodany do LinearLayout. O to właśnie dostałem:
public class ResultsView extends TextView {
public ResultsView(Context context) {
super(context);
LinearLayout.LayoutParams layout = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layout.setMargins(15, 15, 15, 15);
setLayoutParams(layout);
}
}
Brak oznak marginesu w dowolnym miejscu.
EDYCJA: Być może zechcę dodać, jeśli przypiszę wartość marginesu w xml, to działa.
Yay! Tak naprawdę to zrobiliśmy, dzięki! Próbowałem czegoś podobnego wcześniej, ale z onFinishInflate, które nie działało. Czy wiesz, jak to jest po stronie wydajności? Czy lepiej dodać wartość boolowską, aby sprawdzić, czy ustawiliśmy ją już raz? – tom
Nie sądzę, że jest to tak imponujący efekt, ale jeśli martwisz się o to, możesz dodać flagę, aby zrobić to tylko raz, jeśli chcesz ... –
Myślę, że prawdopodobnie można by uciec po prostu modyfikując wymiary przeszedł do onLayout() (np. left + = leftMargin, right - = rightMargin, top + = topMargin, bottom - = bottomMargin, super.onLayout (zmieniony, lewy, górny, prawy, dolny)); – kcoppock