2017-06-27 15 views
0

私は、LayoutInflateボタンを押すたびに新しいボタン(注文によって数値のテキストを含む)を作成するプロジェクトを作成しようとしています。 私がこれまでに行ったことは、これらのあるButton wrap_contentがLinearLayoutで動作しない

(私が質問し、この記事の下部にある問題を書いた):

1.MainActivity Javaファイル

- ボタンを膨張させる> javaファイル >ファイルTHA - mission.xmlファイル内のLinearLayoutにbuttonlayout.xmlで

package com.example.a13_1_mission1; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.widget.Button; 
import android.widget.LinearLayout; 

public class MainActivity extends AppCompatActivity { 

Button btn_inflation; 
LinearLayout container; 
static int num=1; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.mission1); 

    btn_inflation= (Button)findViewById(R.id.inflation); 
    container = (LinearLayout)findViewById(R.id.container); 

    btn_inflation.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      LayoutInflater inflater = getLayoutInflater(); 
      Button inflatedButton = 
      (Button)inflater.inflate(R.layout.buttonlayout,null); 
      inflatedButton.setText("버튼"+(num++)); 
      container.addView(inflatedButton); 
     } 
    }); 



    } 

} 

2.mission.xml

Linearlayout(新しいButtonsを含む)と、膨張するButton UIを提供します。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical"> 

<Button 
    android:id="@+id/inflation" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="5dp" 
    android:background="#6999" 
    android:gravity="center" 
    android:padding="5dp" 
    android:text="LayoutInflate" 
    android:textAllCaps="false" 
    android:textSize="10sp" /> 




    <LinearLayout 
     android:id="@+id/container" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_margin="20dp" 
     android:background="#6999" 
     android:orientation="vertical"> 


    </LinearLayout> 

3.buttonlayout.xml

- >ここでinflatedenter画像記述(TEXTSIZEとか)されるボタンのレイアウト。

<?xml version="1.0" encoding="utf-8"?> 
<Button xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:textSize="10dp"> 
</Button> 

問題&質問:私はwrap_contentされるbuttonlayout.xmlに幅と高さを設定しますが、新たに製造され、ボタンが正しく調整されていません。 は、ここで理解するための私の状況の写真です:

As you see in the photo, the left one is the objective and the right one is mine.

+0

線幅をwrap_contentにします。 –

+0

親のLinearLayoutにandroid:gravity = "center"を設定してください –

+0

ありがとうございました。私はそれを試しましたが、ここにいくつかの問題があります:最初のボタンを作成するまで、1.graybackgroundは表示されません。私はいくつかのボタンを作成したにもかかわらず、灰色の背景は、レイアウトの途中に表示されます。 – poream3387

答えて

0

MainActivity.javaを

View view = getLayoutInflater().inflate(R.layout.buttonlayout,null); 
((Button)view.findViewById(R.id.button)).setText("\"버튼\"+(num++)"); 
container.addView(view); 

buttonlayout.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content"> 

    <Button 
     android:id="@+id/button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="10dp"> 
    </Button> 
</LinearLayout> 
0

次のコードを使用してXMLを更新してください

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <Button 
     android:id="@+id/inflation" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_margin="5dp" 
     android:background="#6999" 
     android:gravity="center" 
     android:padding="5dp" 
     android:text="LayoutInflate" 
     android:textAllCaps="false" 
     android:textSize="10sp" /> 

    <RelativeLayout 
     android:id="@+id/containermain" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_margin="20dp" 
     android:background="#6999"> 

     <LinearLayout 
      android:id="@+id/container" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_margin="20dp" 
      android:orientation="vertical"/> 

    </RelativeLayout> 
</LinearLayout> 
関連する問題