我在自定义视图中使用合并标记,并尝试在父视图上设置layout_marginTop或paddingTop,但不起作用.这是我的代码文件名:my_view.xml
<merge
android:layout_width="match_parent"
android:layout_height="match_parent"
android_layout_marginTop="17dp" > // This margin is lost!
// content here ...
</merge>
Run Code Online (Sandbox Code Playgroud)
所以在我的自定义视图文件MyView.java中,我只是给这个my_view.xml充气.但是android_layout_marginTop信息丢失了.
public class MyView {
private void initViews() {
View view = LayoutInflator.from(context).inflate(R.layout.my_view, this);
// get rest views
}
}
Run Code Online (Sandbox Code Playgroud)
我试图使用LayoutParams在代码中设置边距和填充,但仍然无法正常工作.非常感谢您的帮助!
该<merge>标签是不是一个View,所以尝试设置边距上是行不通的.
看起来你正在遵循"复合控制"模式,你可以在其中创建一些常见的子类ViewGroup(a LinearLayout,或许),然后将其他一些标准View扩展到其中.如果是这样的话......
layout_从<merge>标记中删除所有属性,而不是将它们放在自定义视图的标记上,无论您在屏幕的布局中使用它.像这样的东西:
<com.example.stackoverflow.MyView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="17dp"
...
/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1470 次 |
| 最近记录: |