Як праграмна дадаць 2 TextView ў лінейнай кампаноўцы

enter image description here

Прывітанне ўсім,

Я атрымліваю наступныя поля «Імя» і «Skoda» ад API. Там будзе й лік элементаў, як гэта. Канструктыўна, я павінен паказаць ім, як, як на наступным малюнку.

Такім чынам, я вырашыў стварыць два TextView праграмна ў лінейнай кампаноўцы пад назвай «childLayout», як у наступным.

-- RelativeLayout

  -- Linear Layout
        -- TextView  Textview --
  -- Linear Layout 

  -- Linear Layout
        -- TextView  Textview --
  -- Linear Layout      

  -- Linear Layout
        -- TextView  Textview --
  -- Linear Layout 

--RelativeLayout

Але я не атрымліваю жаданы вынік. Калі ласка, дапамажыце мне вырашыць гэтую праблему.

Вось код:

TextView mType;
TextView mValue;        
for (int i = 0; i < getDetailedDescAL.size(); i++) {

    LinearLayout childLayout = new LinearLayout(
            DetailedCategories.this);

    LinearLayout.LayoutParams linearParams = new LinearLayout.LayoutParams(
            LayoutParams.WRAP_CONTENT,
            LayoutParams.WRAP_CONTENT);
    childLayout.setLayoutParams(linearParams);

    mType = new TextView(DetailedCategories.this);
    mValue = new TextView(DetailedCategories.this);

    mType.setLayoutParams(new TableLayout.LayoutParams(
            LayoutParams.WRAP_CONTENT,
            LayoutParams.WRAP_CONTENT, 1f));
    mValue.setLayoutParams(new TableLayout.LayoutParams(
            LayoutParams.WRAP_CONTENT,
            LayoutParams.WRAP_CONTENT, 1f));

    mType.setTextSize(17);
    mType.setPadding(5, 3, 0, 3);
    mType.setTypeface(Typeface.DEFAULT_BOLD);
    mType.setGravity(Gravity.LEFT | Gravity.CENTER);

    mValue.setTextSize(16);
    mValue.setPadding(5, 3, 0, 3);
    mValue.setTypeface(null, Typeface.ITALIC);
    mValue.setGravity(Gravity.LEFT | Gravity.CENTER);

    mType.setText(getDetailedDescAL.get(i).getmPropertyType());
    mValue.setText(getDetailedDescAL.get(i).getmPropertyValue());

    childLayout.addView(mValue, 0);
    childLayout.addView(mType, 0);

    RelativeLayout.LayoutParams relativeParams = 
        new RelativeLayout.LayoutParams(
            LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
    relativeParams.addRule(RelativeLayout.BELOW);
    Details.addView(childLayout, relativeParams);

   //Details is the relative layout declared in XML

}

выхад:

enter image description here

Падобна на тое, што TextViews падмяняюць. Як вырашыць гэтую праблему.

5
Паспрабуйце дадаць свае погляды ў LinearLayout з вертыкальная арыентацыя, а не ў RelativeLayout.
дададзена аўтар Damien R., крыніца
Паспрабуйце дадаць свае погляды ў LinearLayout з вертыкальная арыентацыя, а не ў RelativeLayout.
дададзена аўтар Damien R., крыніца

8 адказы

Replace the RelativeLayout for a LinearLayout and add all TextView's to that. Dont forget to android:orientation="vertical" in the LinearLayout

3
дададзена
Дзякуючы яна працавала добра. Я толькі што змяніў бацькоўскі размяшчэнне ў лінейнай кампаноўцы. :-)
дададзена аўтар Rethinavel Pillai, крыніца

Replace the RelativeLayout for a LinearLayout and add all TextView's to that. Dont forget to android:orientation="vertical" in the LinearLayout

3
дададзена
Дзякуючы яна працавала добра. Я толькі што змяніў бацькоўскі размяшчэнне ў лінейнай кампаноўцы. :-)
дададзена аўтар Rethinavel Pillai, крыніца
for(int j=0;j<30;j++)
            {

                 LinearLayout childLayout = new LinearLayout(
                            MainActivity.this);

                    LinearLayout.LayoutParams linearParams = new LinearLayout.LayoutParams(
                            LayoutParams.WRAP_CONTENT,
                            LayoutParams.WRAP_CONTENT);
                    childLayout.setLayoutParams(linearParams);

                    TextView mType = new TextView(MainActivity.this);
                    TextView mValue = new TextView(MainActivity.this);

                    mType.setLayoutParams(new TableLayout.LayoutParams(
                            LayoutParams.WRAP_CONTENT,
                            LayoutParams.WRAP_CONTENT, 1f));
                    mValue.setLayoutParams(new TableLayout.LayoutParams(
                            LayoutParams.WRAP_CONTENT,
                            LayoutParams.WRAP_CONTENT, 1f));

                    mType.setTextSize(17);
                    mType.setPadding(5, 3, 0, 3);
                    mType.setTypeface(Typeface.DEFAULT_BOLD);
                    mType.setGravity(Gravity.LEFT | Gravity.CENTER);

                    mValue.setTextSize(16);
                    mValue.setPadding(5, 3, 0, 3);
                    mValue.setTypeface(null, Typeface.ITALIC);
                    mValue.setGravity(Gravity.LEFT | Gravity.CENTER);

                    mType.setText("111");
                    mValue.setText("111");

                    childLayout.addView(mValue, 0);
                    childLayout.addView(mType, 0);

                    linear.addView(childLayout);
            }
1
дададзена
for(int j=0;j<30;j++)
            {

                 LinearLayout childLayout = new LinearLayout(
                            MainActivity.this);

                    LinearLayout.LayoutParams linearParams = new LinearLayout.LayoutParams(
                            LayoutParams.WRAP_CONTENT,
                            LayoutParams.WRAP_CONTENT);
                    childLayout.setLayoutParams(linearParams);

                    TextView mType = new TextView(MainActivity.this);
                    TextView mValue = new TextView(MainActivity.this);

                    mType.setLayoutParams(new TableLayout.LayoutParams(
                            LayoutParams.WRAP_CONTENT,
                            LayoutParams.WRAP_CONTENT, 1f));
                    mValue.setLayoutParams(new TableLayout.LayoutParams(
                            LayoutParams.WRAP_CONTENT,
                            LayoutParams.WRAP_CONTENT, 1f));

                    mType.setTextSize(17);
                    mType.setPadding(5, 3, 0, 3);
                    mType.setTypeface(Typeface.DEFAULT_BOLD);
                    mType.setGravity(Gravity.LEFT | Gravity.CENTER);

                    mValue.setTextSize(16);
                    mValue.setPadding(5, 3, 0, 3);
                    mValue.setTypeface(null, Typeface.ITALIC);
                    mValue.setGravity(Gravity.LEFT | Gravity.CENTER);

                    mType.setText("111");
                    mValue.setText("111");

                    childLayout.addView(mValue, 0);
                    childLayout.addView(mType, 0);

                    linear.addView(childLayout);
            }
1
дададзена

Змена адноснага макета для лінейнага макеце, і гэта вырашаецца

0
дададзена
Дзякуючы яна працавала добра. Я толькі што змяніў бацькоўскі размяшчэнне ў лінейнай кампаноўцы. :-) з АНДРОІД: арыентацыя = «вертыкальны»
дададзена аўтар Rethinavel Pillai, крыніца

Змена адноснага макета для лінейнага макеце, і гэта вырашаецца

0
дададзена
Дзякуючы яна працавала добра. Я толькі што змяніў бацькоўскі размяшчэнне ў лінейнай кампаноўцы. :-) з АНДРОІД: арыентацыя = «вертыкальны»
дададзена аўтар Rethinavel Pillai, крыніца

JFI, чаму вы не проста выкарыстоўваць ListView. У посьце, вы згадалі, што колькасць элементаў невядома. Так што можа быць так, што вы будзеце мець лік элементаў больш, чым тое, што вы можаце мець на бачным прасторы экрана. ListView будзе апрацоўваць пракруткі для вас.

P.S.: Тут замест адноснай або LinearLayout, выкарыстоўвайце Scrollview

0
дададзена

JFI, чаму вы не проста выкарыстоўваць ListView. У посьце, вы згадалі, што колькасць элементаў невядома. Так што можа быць так, што вы будзеце мець лік элементаў больш, чым тое, што вы можаце мець на бачным прасторы экрана. ListView будзе апрацоўваць пракруткі для вас.

P.S.: Тут замест адноснай або LinearLayout, выкарыстоўвайце Scrollview

0
дададзена