Я довольно новичок в программировании Android, но не новичок в Java.
Я пытался настроить нетривиальное представление, и у меня странная проблема. Я разработал макет, который горизонтально прокручивает отдельные панели игроков (это еще один ScoreKeeper)
Итак, я создал playermain.xml с HorizontalScrollView и LinearLayout, чтобы он содержал динамически добавленные панели игроков, которые являются TableLayout.
Я хочу, чтобы кнопки и поля панели игрока растягивались, чтобы занимать все доступное игровое пространство по вертикали (у меня также есть несколько целей по горизонтали, но давайте пока проигнорируем их)
Ничто из того, что я пробовал, не заставит игровые панели растягиваться - вместо этого они центрируются, но не заполняются. Странно то, что я попробовал быстрый тест, который должен был создать плоскую версию XML-файлов (т. Е. Я скопировал две копии XML PlayerPanel в основной XML. Когда я просто установил ContentView в этот комбинированный XML, я получаю представление Я хочу.
Когда я делаю это программно, я не растягиваюсь, и я должен что-то здесь упустить. Я также могу опубликовать комбинированный xml, но я счел это ненужным, в основном, когда я создаю один xml-файл с Scrolls, Layout и tablelayouts, все растягивается так, как я хочу. Когда я создаю Scroll / Layout с одним XML-файлом, а затем добавляю другие элементы на верхний уровень LinearLayout, они не растягиваются.
OnCreate:
<---- СНИП ----->
setContentView(R.layout.playingmain);
final LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout llayout = (LinearLayout)findViewById(R.id.layout1);
TableLayout tl = (TableLayout)inflater.inflate(R.layout.playerpanel, null);
InitializePlayer(player1,tl);
llayout.addView(tl);
<---- СНИП ----->
MAINPANEL.XML
<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="horizontal"
>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:isScrollContainer="true"
android:scrollbarAlwaysDrawHorizontalTrack="true"
android:gravity="center"
>
</LinearLayout>
</HorizontalScrollView>
Индивидуальная панель.xml:
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="5sp"
android:stretchColumns="*"
android:minWidth="200sp"
>
<TableRow
android:id="@+id/NameRow"
android:minWidth="500sp"
android:layout_weight = "1"
>
<TextView
android:id="@+id/PlayerName"
android:text="PlayerName"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
<TextView
android:id="@+id/dbg1"
android:text="TextView"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</TableRow>
<TableRow
android:id="@+id/scoreRow"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight = "1"
>
<TextView
android:id="@+id/currentScore"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="10"
android:textAppearance="?android:attr/textAppearanceLarge"
/>
<TextView
android:id="@+id/dbg2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="TextView"
/>
</TableRow>
<TableRow
android:id="@+id/TableRow17"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight = "1"
>
<Button
android:id="@+id/subtractButton"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="-"
/>
<EditText
android:id="@+id/scoreEntry"
android:layout_span = "2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:inputType="number" />
<Button
android:id="@+id/addButton"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="+"
/>
</TableRow>
<TableRow
android:id="@+id/tableRow1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight = "1"
>
<Button
android:id="@+id/plusOne"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="+1" />
<Button
android:id="@+id/plusFive"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="+5" />
<Button
android:id="@+id/minusOne"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="-1" />
<Button
android:id="@+id/minusFive"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="-5" />
</TableRow>
</TableLayout>