私は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と完全に働いたwrap_content –