使用 sdp 以编程方式更改边距
Changing margin programmatically using sdp
我正在使用 compile 'com.intuit.sdp:sdp-android:1.0.3'
api 像这样设置线性布局的边距
<LinearLayout
android:id="@+id/layout_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/_10sdp"
android:layout_marginTop="@dimen/_10sdp"
android:padding="@dimen/_8sdp"
android:orientation="vertical">
</LinearLayout>
现在,当我以编程方式更改边距时,它会在 dp 中而不是在 sdp 中更改
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.setMargins(0, 10, 10, 0);
layout_message.setLayoutParams(params);
那么如何根据sdp以编程方式更改边距呢?谢谢
你可以试试
对于Java
int margin = getResources().getDimensionPixelSize(R.dimen._10sdp);
params.setMargins(0, margin, margin, 0);
For Kotlin 正如 Zohab Ali
所指出的
resources.getDimensionPixelSize(R.dimen._10sdp)
我正在使用 compile 'com.intuit.sdp:sdp-android:1.0.3'
api 像这样设置线性布局的边距
<LinearLayout
android:id="@+id/layout_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/_10sdp"
android:layout_marginTop="@dimen/_10sdp"
android:padding="@dimen/_8sdp"
android:orientation="vertical">
</LinearLayout>
现在,当我以编程方式更改边距时,它会在 dp 中而不是在 sdp 中更改
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.setMargins(0, 10, 10, 0);
layout_message.setLayoutParams(params);
那么如何根据sdp以编程方式更改边距呢?谢谢
你可以试试
对于Java
int margin = getResources().getDimensionPixelSize(R.dimen._10sdp);
params.setMargins(0, margin, margin, 0);
For Kotlin 正如 Zohab Ali
所指出的resources.getDimensionPixelSize(R.dimen._10sdp)