【问题标题】:Is there a way to change the nested layout parameters of android widget programatically?有没有办法以编程方式更改 android 小部件的嵌套布局参数?
【发布时间】:2015-06-07 08:35:13
【问题描述】:

我想知道是否有任何方法可以像正常活动中的LayoutParams 那样以编程方式更改android 小部件Layout 中嵌套Layout 的width 和height?

我打算用LineraLayouts 制作一个自定义进度条,因此我需要更改一个布局的width 以显示更改

【问题讨论】:

    标签: android android-widget android-appwidget layoutparams


    【解决方案1】:

    您必须使用的LayoutParams 的类型由封装您要更改的参数的事物的布局类型指定。

    例如,如果您想将LayoutParams 更改为LinearLayout,您需要检查封装它的布局类型是什么。在您的情况下,LinearLayout 被RelativeLayout 封装,因此您需要使用RelativeLayout.LayoutParams 而不是ViewGroup.LayoutParams。

    LinearLayout 在您的 xml 文件 (activity_main.xml) 中的 RelativeLayout 内。使用RelativeLayout.LayoutParams 解决此问题。

    改变这个:

    ll.setLayoutParams(new ViewGroup.LayoutParams(100,200));
    

    到:

    ll.setLayoutParams(new RelativeLayout.LayoutParams(100,200));
    

    【讨论】:

    • 但是如何定义要更改的布局(我已经提到我有嵌套布局)?我问的是小部件不是简单的活动
    • 但我不是要活动,请仔细阅读问题,如果是活动,我在第一种情况下不会问
    【解决方案2】:

    您必须使用这种方式来查找嵌套布局并更改布局参数。

    Button button = (Button) findViewById(view.getId());
    LinearLayout rLGreen = ((LinearLayout) button.getParent());
    rLGreen.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
    

    可能对你有帮助!!

    【讨论】:

    • 请阅读这个问题,我不是在问activity 的情况下如何做,而是在问widget 的情况下如何做这个过程
    猜你喜欢
    • 1970-01-01
    • 2020-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-08
    • 1970-01-01
    相关资源
    最近更新 更多