Разработка горизонтальной и вертикальной компоновки Android

Это глупый вопрос, но я нахожусь в середине приложения, в котором я хочу разработать макет как:

Макет

Этот макет прокручивается как по вертикали, так и по горизонтали. Я думал использовать вид прокрутки и вид таблицы, но как сделать его прокручиваемым по горизонтали. Данные поступают из веб-службы, поэтому я не знаю, какой объем данных придет.

Поэтому, пожалуйста, направьте меня.


person Manoj Fegde    schedule 13.03.2014    source источник
comment
Привет, вы можете сделать это, просто попробуйте реализовать это руководство: android-pro .blogspot.com/2010/02/android-scrollview.html   -  person wSakly    schedule 13.03.2014


Ответы (2)


Не рекомендуется использовать два вида прокрутки. Но если это необходимо, вы можете сделать одну вещь:

Создайте XML-макет как:

<ScrollView
    android:id="@+id/scrollview_vertical_table"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <HorizontalScrollView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            tools:ignore="UselessParent" >

            <TableLayout
                android:id="@+id/tablelayout"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:stretchColumns="*" >

            </TableLayout>
        </HorizontalScrollView>
    </LinearLayout>
</ScrollView>

И вставьте записи или строки программно в эту таблицу как:

TableLayout tableLayoutTransactionLineHeading = (TableLayout) findViewById(R.id.tablelayout);
for(int j=0; j<rows; j++){      
    TableRow tableRow = new TableRow(this);
    tableRow.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT));

    TextView lineno = new TextView(this);
    lineno.setText(lineNo[j]);
    lineno.setPadding(10, 10, 10, 10);
    lineno.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));
    tableRow.addView(lineno);

    View v = new View(this);
            v.setLayoutParams(new TableRow.LayoutParams(1, TableRow.LayoutParams.MATCH_PARENT));
            v.setBackgroundColor(Color.rgb(50, 50, 50));
            tableRow.addView(v);

    tableLayout.addView(tableRow, new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT,0f));
}

Надеюсь, что это поможет вам.

person Optim India    schedule 18.03.2014

Прокрутка как по горизонтали, так и по вертикали — плохой пользовательский опыт. Я предлагаю вам иметь только один, и то, что я вижу в вашем примере, горизонтальное. Если обязательно иметь оба, вы можете создать ListView и в своем адаптере при создании ячейки, чтобы иметь горизонтальный ScrollView в качестве родителя, где рекламировать с раздуванием дочерних элементов представления для вашего горизонтального ScrollView.

person Lucian Novac    schedule 13.03.2014