android - 如何从代码更改大小 LinearLayout

标签 android android-layout

我有 LinearLayot 和 LinearLayout,以及 TableLayout 和 TableRow。当我单击按钮时,A 会更改大小。当我这样做时:

    @Override
        public void onClick(View v) {
            private LinearLayout commonCardContainer = (LinearLayout) findViewById(R.id.commonCardContainer);
            ViewGroup.LayoutParams params = commonCardContainer.getLayoutParams();
            params.width = 50;
            params.height = 50;
            commonCardContainer.setLayoutParams(new ViewGroup.LayoutParams(params)); 
    }

我有错误:

 05-21 15:22:31.084: E/AndroidRuntime(9272): FATAL EXCEPTION: main
05-21 15:22:31.084: E/AndroidRuntime(9272): java.lang.ClassCastException: android.view.ViewGroup$LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
05-21 15:22:31.084: E/AndroidRuntime(9272):     at android.widget.RelativeLayout$DependencyGraph.findRoots(RelativeLayout.java:1317)
05-21 15:22:31.084: E/AndroidRuntime(9272):     at android.widget.RelativeLayout$DependencyGraph.getSortedViews(RelativeLayout.java:1264)
05-21 15:22:31.084: E/AndroidRuntime(9272):     at android.widget.RelativeLayout.sortChildren(RelativeLayout.java:292)
05-21 15:22:31.084: E/AndroidRuntime(9272):     at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:314)
05-21 15:22:31.084: E/AndroidRuntime(9272):     at android.view.View.measure(View.java:12948)
05-21 15:22:31.084: E/AndroidRuntime(9272):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5005)
05-21 15:22:31.084: E/AndroidRuntime(9272):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
05-21 15:22:31.084: E/AndroidRuntime(9272):     at android.view.View.measure(View.java:12948)
05-21 15:22:31.084: E/AndroidRuntime(9272):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5005)
05-21 15:22:31.084: E/AndroidRuntime(9272):     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1369)
05-21 15:22:31.084: E/AndroidRuntime(9272):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:660)
05-21 15:22:31.084: E/AndroidRuntime(9272):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:553)
05-21 15:22:31.084: E/AndroidRuntime(9272):     at android.view.View.measure(View.java:12948)
05-21 15:22:31.084: E/AndroidRuntime(9272):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5005)
05-21 15:22:31.084: E/AndroidRuntime(9272):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
...

如何解决?

最佳答案

试试这个,

@Override
    public void onClick(View v) {
        private LinearLayout commonCardContainer = (LinearLayout) findViewById(R.id.commonCardContainer);
        LinearLayout.LayoutParams params = commonCardContainer.getLayoutParams();
        params.width = 50;
        params.height = 50;
        commonCardContainer.setLayoutParams(params); 
}

关于android - 如何从代码更改大小 LinearLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23782175/

相关文章:

java - 你如何在 android 中捕获 UnknownHostException?

android 布局权重 %

android - 如何在 Android Studio 中打开主题编辑器?

java - 安卓.view.InflateException : Binary XML file line #8: Error inflating class fragment

android - 折叠布局但将另一个布局放在底部

Android应用——三个问题

android - 如何在某些事件的 TextView 上添加图像

android - 找不到 tools.jar。请检查/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home 是否包含有效的 JDK 安装

Android内部类的弱引用

android - 使用适用于 Android 的 google map api2 对 map 进行样式化