程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> android-Android setLayoutParams()的問題

android-Android setLayoutParams()的問題

編輯:編程綜合問答
Android setLayoutParams()的問題

想知道在代碼中通過getLayoutParams()得到一個View的LayoutParams,然後修改之後一定要通過set方法才能生效嗎?比如修改了Width屬性?

下面是學習的時候看到的代碼,這個方法沒有set啊,這是怎麼回事呢

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initValues();
        content.setOnTouchListener(this);
    }

    private void initValues() {
        WindowManager window = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
        DisplayMetrics dm = new DisplayMetrics();
        window.getDefaultDisplay().getMetrics(dm);
        screenWidth=dm.widthPixels;

        content = findViewById(R.id.content);
        menu = findViewById(R.id.menu);
        menuParams = (LinearLayout.LayoutParams) menu.getLayoutParams();

       // 將menu的寬度設置為屏幕寬度減去menuPadding
        menuParams.width = screenWidth - menuPadding;
        // 左邊緣的值賦值為menu寬度的負數
        leftEdge = -menuParams.width;
        // menu的leftMargin設置為左邊緣的值,這樣初始化時menu就變為不可見
        menuParams.leftMargin = leftEdge;
        // 將content的寬度設置為屏幕寬度
        content.getLayoutParams().width = screenWidth;
    }

最佳回答:


對,需要從新set,不然布局不會更新的。

danielinbiti
Arvin_ghost
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved