首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CardView动态高度

CardView动态高度
EN

Stack Overflow用户
提问于 2017-02-24 19:17:58
回答 1查看 5.1K关注 0票数 2

我正在编写一个使用CardView存储元素的自定义表单。我有类似于EditText元素的元素,它允许多行文本。在添加或删除行时,我一直试图使CardView高度与EditText的高度动态匹配,但始终保持不变。以下是代码:

代码语言:javascript
复制
package com.cpjd.roblu.activities;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.support.design.widget.TextInputEditText;
import android.support.v7.widget.CardView;
import android.view.inputmethod.EditorInfo;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;

import com.cpjd.roblu.R;


public class TeamViewer extends Activity {

// adapters
LinearLayout layout;
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_team_viewer);

    layout = (LinearLayout) findViewById(R.id.team_viewer_cards);

    // Initialize a new CardView
    CardView card = new CardView(getApplicationContext());

    // Set the CardView layoutParams
    LayoutParams params = new LayoutParams(
            LayoutParams.MATCH_PARENT,
            400
    );
    card.setLayoutParams(params);

    // Set CardView corner radius
    card.setRadius(9);

    // Set cardView content padding
    card.setContentPadding(15, 15, 15, 15);

    // Set a background color for CardView
    card.setCardBackgroundColor(Color.DKGRAY);

    // Set the CardView maximum elevation
    card.setMaxCardElevation(200);

    // Set CardView elevation
    card.setCardElevation(50);

    LinearLayout l1 = new LinearLayout(getApplicationContext());


    // Initialize a new TextView to put in CardView
    TextInputEditText et = new TextInputEditText(getApplicationContext());
    et.setTextColor(Color.WHITE);
    et.setSingleLine(false);
    et.setImeOptions(EditorInfo.IME_FLAG_NO_ENTER_ACTION);
    et.setHint("Hint");
    et.setFocusableInTouchMode(true);
    et.setEnabled(true);
    et.requestFocus();
    l1.addView(et);
    card.addView(l1);

    // Finally, add the CardView in root layout
    layout.addView(card);


}

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-24 19:30:46

尝试如下:正确设置Cardview的布局参数

代码语言:javascript
复制
 CardView card = new CardView(getApplicationContext());

            // Set the CardView layoutParams
            LayoutParams params = new LayoutParams(
                    LayoutParams.WRAP_CONTENT,
                    LayoutParams.WRAP_CONTENT
            );
            card.setLayoutParams(params);



 // Put the Editext in CardView
card.addView(et);

// Finally, add the CardView in root layout
layout.addView(card);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42446609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档