【问题标题】:set size of layout programmatically in android在android中以编程方式设置布局的大小
【发布时间】:2014-08-29 19:08:28
【问题描述】:

我想根据设备屏幕的大小创建布局。这是我的 MainActivity

public class LoginActivity extends Activity {

int width_device;
int height_device;
LinearLayout layout_login_content;
LinearLayout.LayoutParams param;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);

    // Get screen size
    width_device = Utility.getDeviceWidth(this);
    height_device = Utility.getDeviceHeight(this);

    // Get widget from layout
    layout_login_content = (LinearLayout) findViewById(R.id.layout_login_content);

    // Set up layout size
    param = (LinearLayout.LayoutParams) layout_login_content
            .getLayoutParams();
    param.width = width_device * 60 / 100;
    param.height = height_device * 60 / 100;
    layout_login_content.setLayoutParams(param);
}

不用担心如何获取屏幕尺寸。我做到了,它奏效了。

这是我的main_fragment.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/layout_login_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:orientation="vertical"
tools:context="login.LoginActivity" >
</LinearLayout>

这是错误信息

java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.widget.LinearLayout$LayoutParams

我不知道这里发生了什么。我声明 LinearLayout.LayoutParams,从 LinearLayout 在 xml 中获取参数。但是为什么不能正确投射呢?

对不起我的英语。我希望每个人都知道我的意思:( 太感谢了!

【问题讨论】:

    标签: android android-layout layoutparams


    【解决方案1】:

    看起来您的 LinearLayout 正在继承一些 FrameLayout 参数。

    尝试简单地使用FrameLayout.LayoutParams 而不是LinearLayout.LayoutParams

    param = (FrameLayout.LayoutParams) layout_login_content.getLayoutParams();
    

    【讨论】:

      猜你喜欢
      • 2011-10-11
      • 1970-01-01
      • 1970-01-01
      • 2011-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-09
      相关资源
      最近更新 更多