繁体   English   中英

Android Studio-以编程方式处理布局/视图的问题

[英]Android Studio - issue with manipulating Layouts/Views programmatically

我以编程方式设置LayoutParams和布局/视图的其他参数时遇到一些问题。 我无法在XML布局文件中指定它们,因为它们是否出现取决于数据库中保存的数据。

以下是我用来创建新的“ Section”的功能,该功能由一个FrameLayout组成,其子级为View和TextView:

public FrameLayout createSection(long id, String name) {
    FrameLayout frame = new FrameLayout(this);
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 100);
    params.setMargins(15, 15, 15, 15);
    frame.setLayoutParams(params);

    View view = new View(this);
    LayoutParams viewParams = new LayoutParams(LayoutParams.MATCH_PARENT, 100);
    view.setLayoutParams(viewParams);
    view.setId(toIntExact(id));
    view.setBackgroundResource(R.color.colorButton);
    frame.addView(view);

    TextView text = new TextView(this);
    LayoutParams textParams = new LayoutParams(LayoutParams.MATCH_PARENT, 100);
    textParams.setMarginStart(15);
    text.setGravity(Gravity.CENTER);
    text.setTextAlignment(TextView.TEXT_ALIGNMENT_TEXT_START);
    text.setTextColor(getResources().getColor(R.color.colorTextSecondary));
    text.setText(name);
    frame.addView(text);

    return frame;
}

这个新创建的FrameLayout的父级是LinearLayout,因此基于StackOverflow上的其他类似问题,我认为应该通过LinearLayout.LayoutParams完成FrameLayout的设置参数。 但是,这并没有改变。 初始XML页面包含以下内容: 初始XML页面

第一个“ SECTION”在XML文件中创建,另外两个通过“ createSection”函数创建。 这就是结果: 设计结果

问题是页边距设置不正确,TextView似乎并不关心我使用的Gravity + TextAlignment组合。

如果能解决此问题,我将不胜感激。

对于浪费任何人的时间,我深表歉意。 该代码似乎可以正常工作,并且页边距大小不同,这是因为这些像素是根据像素(px)而不是XML文件中的dp设置的。

我也忘记添加text.setLayoutParams(textParams); 到TextView对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM