以编程方式在视图上添加填充

新手上路,请多包涵

我正在开发 Android v2.2 应用程序。

我有一个 Fragment 。在片段类的 onCreateView(...) 回调中,我将布局膨胀到片段,如下所示:

 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.login, null);

    return view;
}

上面的膨胀布局文件是(login.xml):

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Username" />


    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Username" />

</LinearLayout>

我想为上面的 <LinearLayout> 元素设置一个 paddingTop ,我想在 Java 代码中而不是在 xml 中进行。

如何在我的片段Java类代码中设置 paddingTop<LinearLayout>

原文由 Leem.fin 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 405
2 个回答

view.setPadding(0,padding,0,0);

这会将顶部填充设置为 padding -pixels。

如果你想在 dp 中设置它,你可以做一个 转换

 float scale = getResources().getDisplayMetrics().density;
int dpAsPixels = (int) (sizeInDp*scale + 0.5f);

原文由 Jave 发布,翻译遵循 CC BY-SA 3.0 许可协议

步骤1: 首先,将填充值作为整数。

int padding = getResources().getDimensionPixelOffset(R.dimen.padding);

int padding = 16; [使用任何方法]

第 2 步: 然后将填充值分配给布局。

layout.setPadding(padding, padding, padding, padding);

layout.setPadding(padding_left, padding_top, padding_right, padding_bottom);

可以分配所有侧面不同的填充。 layout.setPadding(16, 10, 8, 12);

删除填充(无填充),请将填充值设置为 0,

layout.setPadding(0, 0, 0, 0);

原文由 Samiya Khan 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题