На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Hsilgos
  
> Скомпоновать несколько кнопок. , Компоновка нескольких кнопок на layout
    Привет. Возник затык с такой задачей: есть 5 обычных кнопок на layout'е. Хочу, чтобы они заполняли весь layout без промежутков (либо с гибко регулируемым промежутком между ними, все же совсем без него будет уныло). Пробую решить все на уровне XML-компоновки. Чтобы заполнить весь layout кнопками, это надо использовать weight, а чтобы регулировать расстояние - margin (при отрицательных значениях кнопки можно друг к другу притереть). Проблема в том, что они у меня вместе не контачат - либо шашечки, либо ехать.

    Если подвести итог: надо, чтобы кнопки заполняли весь layout, на котором они находятся, и расстояние между ними было меньше, чем дефолтное. Кто-нибудь сталкивался с подобной проблемой?

    Заранее спасибо за толчки в нужном направлении.

    P.S. Еще заметил такую ботву: некоторые компоненты (в частности, button) имеют вокруг графической части некую пустую область. Нахрена? Причем пустое расстояние по краям неравномерно. Например, у button оно везде, кроме верхней части.
      Weight + width=fill_parent.

      Добавлено
      Instead of buttons you can use simple image view. It will help you to get rid of additional paddings.
        Цитата
        Weight + width=fill_parent.

        Это ты к чему написал? Чтобы заполнить все пространство по вертикали, надо всем кнопкам установить height в 0dip, weight в 1, а у layout'а не устанавливать weightSum. Тогда если задать кнопкам width как match_parent, то они равномерно заполнят все пространство по ширине и вертикали. Для горизонтального заполнения аналогично. А то что ты написал - совершенно непонятно в текущем контексте. :)

        Насчет ImageView вместо Button: пока склоняюсь к нему, правда, придется хлебнуть с картинками и стилями на состояния кнопки, но что поделать, если Button такой убогий. Его еще и квадратным не так просто сделать оказалось. :)

        Добавлено
        В любом случае, предложения по изнасилованию Button все еще приветствуются.
          Можно переопределить стиль кнопки ( не помню, где нашел примерчик)
          создать вот такой вот xml-ничек, например my_new_xml
          ExpandedWrap disabled
            <?xml version="1.0" encoding="utf-8"?>
            <selector
                xmlns:android="http://schemas.android.com/apk/res/android">
             
                <item android:state_pressed="true" >
                    <shape>
                        <gradient
                            android:startColor="#FFFF00"
                            android:endColor="#808000"
                            android:angle="270" />
                        <stroke
                            android:width="1dp"
                            android:color="#000000" />
                        <corners
                            android:radius="2dp" />
                        <padding
                            android:left="10dp"
                            android:top="0dp"
                            android:right="0dp"
                            android:bottom="0dp" />
                    </shape>
                </item>
             
                <item android:state_focused="true" >
                    <shape>
                        <gradient
                            android:endColor="#F7BE45"
                            android:startColor="#F7D896"
                            android:angle="270" />
                        <stroke
                            android:width="1dp"
                            android:color="#000000" />
                        <corners
                            android:radius="2dp" />
                        <padding
                            android:left="10dp"
                            android:top="0dp"
                            android:right="0dp"
                            android:bottom="0dp" />
                    </shape>
                </item>
             
                <item>        
                    <shape>
                        <gradient
                            android:endColor="#A0A0A0"
                            android:startColor="#E0E0E0"
                            android:angle="270" />
                        <stroke
                            android:width="1dp"
                            android:color="#000000" />
                        <corners
                            android:radius="2dp" />
                        <padding
                            android:left="0dp"
                            android:top="0dp"
                            android:right="0dp"
                            android:bottom="0dp" />
                    </shape>
                </item>
            </selector>


          А затем кнопке задать
          ExpandedWrap disabled
             this.buttonDate.setBackgroundResource(R.drawable.my_new_xml);


          Можно поиграться настройками.
          Сообщение отредактировано: Marriage -
            Про стили Button есть хорошие материалы:
            http://stackoverflow.com/questions/4489069...id-button-style
            http://www.dibbus.com/2011/02/gradient-buttons-for-android/

            В свете того, что, скорее всего, сами кнопки будут создаваться в итоге в рантайме, возможно, это остается единственным приемлемым для меня вариантом.
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0283 ]   [ 15 queries used ]   [ Generated: 3.05.24, 20:58 GMT ]