亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

動態更改高度約束布局

動態更改高度約束布局

桃花長相依 2021-10-20 11:40:19
情況:[x] 列表項/切換標題子列表項子列表項[ ] 列表項/切換標題如何根據復選框是否選中來動態更改第一個列表項的高度?(如果復選框被選中,它會打開一個子列表)那么如何通過編碼更改約束布局的高度?PS:我使用的是 AndroidStudio 3.2
查看完整描述

3 回答

?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

您不需要動態更改高度。只需將子列表放在類似于 LinearLayout 的 ViewGroup 中,View.VISIBLEView.GONE在復選框更改之間切換可見性。


查看完整回答
反對 回復 2021-10-20
?
慕斯王

TA貢獻1864條經驗 獲得超2個贊

您可以使用以下代碼更改每個視圖的高度或寬度 :


private void changeIncludes (View newView ){

        LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) newView.getLayoutParams();

        // change width and height to 50

        params.height = 50 ;

        params.width = 50;

        newView.setLayoutParams(params);

    }

或從其他視圖大小使用:


private void changeIncludes (View current , View newView ){

        LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) newView.getLayoutParams();

        params.height = current.getLayoutParams().height;

        params.width = current.getLayoutParams().width;

        newView.setLayoutParams(params);

    }

如果寬度或高度沒有改變,你應該刷新頁面。


這些代碼對我有用,我希望對你也有用。


checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

            @Override

            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

                if (isChecked){

                    changeIncludes(buttonView,50,100);

                }else{

                    changeIncludes(buttonView,30,100);

                }

            }

        });


private void changeIncludes (View newView , int h , int w){

        LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) newView.getLayoutParams();

        // change width and height to 50

        params.height = h ;

        params.width = w;

        newView.setLayoutParams(params);

    }

我將此代碼用于復選框,但如果您想用于列表項,則只需更改偵聽器和界面。


查看完整回答
反對 回復 2021-10-20
  • 3 回答
  • 0 關注
  • 244 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號