2016-07-11 5 views
0

私のアプリに問題があり、なぜこのようなことが起こるのか合理的な説明が見つかりません。Androidスタジオ:動的に作成されたボタンのレイアウトが切り取られます

final Dialog dialog = new Dialog(content); 
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
dialog.setCancelable(false); 
dialog.setCanceledOnTouchOutside(false); 
dialog.getWindow().setLayout(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT); 
LinearLayout popUp = getProperLayout(s1,content); 
popUp = generateFinalLayout(s,popUp,content); 
// Button 
LinearLayout btnLayout = new LinearLayout(content); 
btnLayout.setOrientation(LinearLayout.HORIZONTAL); 
btnLayout.setGravity(Gravity.RIGHT); 
btnLayout.setPadding(8,0,8,12); 
Button cancel = new Button(content); 
cancel.setText("OK"); 
cancel.setBackgroundColor(Color.TRANSPARENT); 
cancel.setTextColor(Color.parseColor("#0078ff")); 
cancel.setOnClickListener(new View.OnClickListener() { 
    @Override 
     public void onClick(View view) { 
      dialog.cancel(); 
     } 
    }); 
btnLayout.addView(cancel); 
//Dodaj 
popUp.addView(btnLayout); 
dialog.setContentView(popUp); 

getProperLayout:

public static LinearLayout getProperLayout(String s1,Context content) { 
    LinearLayout properLayout; 
    properLayout = new LinearLayout(content); 
    properLayout.setOrientation(LinearLayout.VERTICAL); 
    properLayout.setBackgroundColor(Color.parseColor("#EEEEEE")); 
    properLayout.setPadding(16,16,16,16); 
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT); 
    properLayout.setLayoutParams(params); 
    // Treść informacji 
    TextView nameText = new TextView(content); 
    nameText.setText(s1); 
    nameText.setPadding(16, 36, 16, 36); 
    nameText.setGravity(Gravity.CENTER_HORIZONTAL); 
    //Dodaj wszycho 
    properLayout.addView(nameText); 
    return properLayout; 
} 

generateFinalLayout:

public static LinearLayout generateFinalLayout(String title,LinearLayout popUp,Context content) { 
    LinearLayout properLayout; 
    properLayout = new LinearLayout(content); 
    properLayout.setOrientation(LinearLayout.VERTICAL); 
    properLayout.setBackgroundColor(Color.parseColor("#EEEEEE")); 
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT); 
    properLayout.setLayoutParams(params); 
    // Tytuł 
    TextView titleTv = new TextView(content); 
    titleTv.setText(title); 
    titleTv.setTextSize(20f); 
    titleTv.setTextColor(Color.WHITE); 
    titleTv.setBackgroundColor(Color.parseColor("#0056BB"));//29394E")); 
    titleTv.setTypeface(null, Typeface.BOLD); 
    titleTv.setPadding(16, 16, 16, 16); 
    // Poszerzacz 
    TextView extender = new TextView(content); 
    extender.setBackgroundColor(Color.parseColor("#2278DD"));//Color.parseColor("#18283d")); 
    params = new LinearLayout.LayoutParams(712,0); 
    extender.setLayoutParams(params); 
    extender.setPadding(2, 22, 2, 22); 
    // Poszerzacz2 
    TextView extender2 = new TextView(content); 
    extender2.setBackgroundColor(Color.TRANSPARENT);//Color.parseColor("#18283d")); 
    params = new LinearLayout.LayoutParams(712,4); 
    extender2.setLayoutParams(params); 
    extender2.setPadding(2, 22, 2, 22); 
    // Dodajparams 
    properLayout.setPadding(0,0,0,0); 
    properLayout.addView(titleTv); 
    properLayout.addView(extender); 
    properLayout.addView(popUp); 
    properLayout.addView(extender2); 
    return properLayout; 
} 

そして、多くのデバイス(S3、LG V490、S5、S7)の上に、それはOKに見える私は、動的にダイアログボックスを作成します。しかしクライアントのHTCでは、次のようになります。 enter image description hereenter image description here

何が起こっているのですか?何も解決しない 削除パディング...他

+0

ダイアログが動的に作成されているのと同じで、何のXMLはありませんが、私はgenerateFinaLayoutコードを入れるのを忘れていました。編集。 –

+0

以下の2つの方法の使用を私に教えてください。 LinearLayout popUp = getProperLayout(s1、content); popUp = generateFinalLayout(s、popUp、content); はgetProperLayoutとgenerateFinalLayoutを意味します。 –

+0

そこに行くと、私はそれらを問​​題に追加しました。混乱させて申し訳ありません。 –

答えて

0
final Dialog dialog = new Dialog(MainActivity.this); 
      dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
      dialog.setCancelable(false); 
      dialog.setCanceledOnTouchOutside(false); 
      dialog.getWindow().setLayout(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT); 
      LinearLayout popUp = getProperLayout("Proper",MainActivity.this); 
      popUp = generateFinalLayout("Final",popUp,MainActivity.this); 
      // Button 
      LinearLayout btnLayout = new LinearLayout(MainActivity.this); 
      btnLayout.setOrientation(LinearLayout.HORIZONTAL); 
      btnLayout.setGravity(Gravity.RIGHT); 
      btnLayout.setPadding(8,0,8,12); 
      Button cancel = new Button(MainActivity.this); 
      cancel.setText("OK"); 
      cancel.setBackgroundColor(Color.TRANSPARENT); 
      cancel.setTextColor(Color.parseColor("#0078ff")); 
      cancel.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        dialog.cancel(); 
       } 
      }); 
      btnLayout.addView(cancel); 
      //Dodaj 
      popUp.addView(btnLayout); 
      dialog.setContentView(popUp); 
      dialog.show(); 

+0

あなたは何を変えたのですか? –

関連する問題