2017-02-24 54 views
1

私は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); 


} 

} 
+0

はあなたのcardviewと完全に働いたwrap_content –

答えて

1

この試してみてください。適切Cardviewの設定したレイアウトパラメータを

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

おかげで、などのEditTextの高さの両方を設定します。 – techguy9984

+0

あなたはwelcome..pls正しい答えとしてマーク – rafsanahmad007

+0

使用するパッケージレイアウトパラメータはどれですか? –