Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Lagsterius
1 / 1 / 0
Регистрация: 05.11.2010
Сообщений: 27
#1

TableLayout - Программирование Android

13.11.2012, 13:00. Просмотров 917. Ответов 0
Метки нет (Все метки)

Всем доброго времени суток, возник вопрос:

Только начал изучать разработку под андроид так что не судите строго, есть вот такая разметка:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
  <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
        
        <TableRow android:id = "@+id/d_tr1">
            <TextView android:id = "@+id/txt_d_title"
                android:layout_span = "2"
                android:text = "Title" />
        </TableRow>
        
        <TableRow android:id = "@+id/d_tr2">
            <TextView android:id = "@+id/txt_d_Mt"
                android:text = "Title" />
 
            <TextView
                android:id="@+id/txt_d_Mc"
                android:text="Title" />
 
        </TableRow>
        
        <TableRow android:id = "@+id/d_tr3">
            <TextView android:id = "@+id/txt_d_nt"
                android:text = "Title" />
            <TextView android:id = "@+id/txt_d_nc"
                android:text = "Title" />
        </TableRow>
        
        <TableRow android:id = "@+id/d_tr4">
            <TextView android:id = "@+id/txt_d_dt"
                android:text = "Title" />
            <TextView android:id = "@+id/txt_d_dc"
                android:text = "Title"
                android:layout_gravity="right" />
        </TableRow>
        
        <TableRow android:id = "@+id/d_tr5">
            <TextView android:id = "@+id/txt_d_ht"
                android:text = "Title" />
            <TextView android:id = "@+id/txt_d_hc"
                android:text = "Title" />
        </TableRow>
        
        <TableRow android:id = "@+id/d_tr6">
            <TextView android:id = "@+id/txt_d_mt"
                android:text = "Title" />
            <TextView android:id = "@+id/txt_d_mc"
                android:text = "Title" />
        </TableRow>
        
        <TableRow android:id = "@+id/d_tr7">
            <TextView android:id = "@+id/txt_d_st"
                android:text = "Title" />
            <TextView android:id = "@+id/txt_d_sc"
                android:text = "Title" />
        </TableRow>
    </TableLayout>
Смысл в том чтобы при загрузке формы первый ряд занимал 16% высоты экрана, а остальные 6 делили высоту между собой поровну. Я сделал это вот так:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package lagster.experement;
 
import android.app.Activity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.Display;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TableRow;
import android.content.Intent;
import android.graphics.Color;
 
public class mainActivity extends Activity {
    
    int Th, Rh;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Display display = getWindowManager().getDefaultDisplay();
        DisplayMetrics metricsB = new DisplayMetrics();
        display.getMetrics(metricsB);
        
        TableRow tr1 = (TableRow) findViewById(R.id.d_tr1);
        TableRow tr2 = (TableRow) findViewById (R.id.d_tr2);
        TableRow tr3 = (TableRow) findViewById (R.id.d_tr3);
        TableRow tr4 = (TableRow) findViewById (R.id.d_tr4);
        TableRow tr5 = (TableRow) findViewById (R.id.d_tr5);
        TableRow tr6 = (TableRow) findViewById (R.id.d_tr6);
        TableRow tr7 = (TableRow) findViewById (R.id.d_tr7);
        
        tr1.setBackgroundColor(Color.argb(255, 255, 255, 0));
        
        Th = (int) metricsB.heightPixels * 16 / 100;
        Rh = (int) metricsB.heightPixels * 14 / 100;
        tr1.setMinimumHeight(Th);
        tr2.setMinimumHeight(Rh);
        tr2.setBackgroundColor(Color.argb(255, 0, 255, 0));
        tr3.setMinimumHeight(Rh);
        tr3.setBackgroundColor(Color.argb(255, 255, 0, 0));
        tr4.setMinimumHeight(Rh);
        tr4.setBackgroundColor(Color.argb(255, 200, 255, 100));
        tr5.setMinimumHeight(Rh);
        tr5.setBackgroundColor(Color.argb(255, 100, 255, 0));
        tr6.setMinimumHeight(Rh);
        tr6.setBackgroundColor(Color.argb(255, 12, 255, 255));
        tr7.setMinimumHeight(Rh);
        tr7.setBackgroundColor(Color.argb(255, 255, 100, 100));
        
      }
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
      
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.main_menu_close:
            finish();
            return true;
        case R.id.main_menu_about:
            Intent intent_about = new Intent(mainActivity.this, aboutActivity.class);
            startActivity(intent_about);
            return true;
        default:
            Intent intent_settings = new Intent(mainActivity.this, settingsActivity.class);
            startActivity(intent_settings);
            return true;
        }
    }
}
Из кода видно что для 1 ряда высота должна быть 16%
Java
1
Th = (int) metricsB.heightPixels * 16 / 100;
А для остальные по 14% (14% * 6 = 84%; 84% + 16% = 100%
Java
1
Rh = (int) metricsB.heightPixels * 14 / 100;
Но ожидаемого 100%-тного заполнения высоты экрана я не увидел, помогите исправить пожалуйста
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2012, 13:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос TableLayout (Программирование Android):

TableLayout - Программирование Android
Как убрать отступы между ячейками?Например сетка заполнена кнопками,мне нужно уменьшить расстояние между кнопками.:(

TableLayout - Программирование Android
Проблема в расстановки компонетов в TableLayout есть код: &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;TableLayout...

TableLayout - Программирование Android
Как мне растянуть EditText, чтобы его левый край был возле правого края TextView? Разметка &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; ...

TableLayout - Программирование Android
Нашла на сайте как делать сеточку с помощью TableLayout. И вроде всё сделала, как сказано... Но почему-то отображает только первую строку...

TableLayout - Программирование Android
Как сделать так что б TextView в TableLayout была на всю строку? :scratch:

TableLayout - Программирование Android
Считываю данные из БД, и размещаю их в таблице на основе TableLayout. Для того чтоб она листалась, так как строк довольно много,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2012, 13:00
Привет! Вот еще темы с ответами:

TableLayout по центру - Программирование Android
Есть на активити imageView и TableLayout. imageView в самом верху. Как разместить TableLayout по центу оставшегося пространства?

Не работает TableLayout - Программирование Android
Вобщем, при попытке запустить выдаёт ошибку. В xml у меня получилось сделать в 1 ряд 2 кнопки, а тут нет... Пожалуйста, помогите ...

Не растягивается Spinner в TableLayout - Программирование Android
Доброго времени суток. Понадобился выпадающий список на экране. Компоненты которого размещены в TableLayout в двух условных столбцах. ...

Связка ScrollView + Include + TableLayout - Программирование Android
Добрый день. Хочу реализовать основное меню с кнопками, небольшим текстом и логотипом. Для этого использую TableLayout. Для прокрутки по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru