我正在使用CardView
来存储元素的自定义窗体上工作。我有元素,如EditText
元素,它允许多行文本。我一直试图使CardView
高度与线条的添加或删除动态匹配,因此动态高度与EditText
一致,但它保持不变。下面是代码:CardView动态高度
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);
}
}
同时设置你的cardview和EditText上的高度WRAP_CONTENT –