2015-05-24 2 views
-1

Я изучаю, как использовать gridview и начал работать над образцом приложения, чтобы построить базовый калькулятор.Textview получает обрезанный в GridView

Идея заключалась в использовании gridview для хранения ячеек. В gridview используется TextAdapter (расширяет BaseAdapter), который возвращает TextView, соответствующий переданной позиции.

Я могу настроить все, чтобы отображать числа от 0 до 9, но текстовое изображение кажется обрезанным справа. Это проблема я столкнулся

enter image description here

Вот мой XMLs

MainActivity.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity" 
    android:textAlignment="center"> 

    <TextView android:text="@string/hello_world" android:layout_width="fill_parent" 
     android:layout_height="48dp" 
     android:textIsSelectable="true" 
     android:id="@+id/textView" /> 

    <GridView 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:id="@+id/calculatorCellsView" 

     android:layout_marginTop="100dp" 

     android:numColumns="5" 
     android:columnWidth="20dp" 
     android:clickable="true" 
     android:choiceMode="singleChoice" 
     android:visibility="visible" 
     android:verticalSpacing="2dp" 
     android:horizontalSpacing="2dp" 
     android:gravity="center" 
     /> 


</RelativeLayout> 

cellLayoutOfGridView XML

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/id_gridCell" 
     android:background="@drawable/view_background" 
     android:gravity="center" 
     /> 

</LinearLayout> 

рисует фон рисовать границы

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 

    <stroke android:color="#000000" android:width="4dp"/> 
    <solid android:color="@color/background_material_light"/> 
    <padding android:bottom="4dp" android:left="4dp" android:right="4dp" android:top="4dp"/> 
</shape> 

Я обнаружил, что проблема была в определении функции getView() адаптера, переопределяющем layoutparams. удаление из файла java исправлено!

ответ

1

Попробуйте удалить LinearLayout, если вы его не используете.
cellLayoutOfGridView.xml

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/id_gridCell" 
    android:background="@drawable/view_background" 
    android:gravity="center" 
    android:layout_gravity="center" /> 

Вы можете увидеть, что вызывает вид внутри ячейки сетки для толкания вправо.
Для KitKat: перейти Настройки> Параметры разработчика> Показать макет ограничивающей
Для леденец: перейти на Настройки> Параметры разработчика> границ Показать макет.
Восстановите свое приложение. Теперь вы можете увидеть поля обзора и прокладки.
Вы также можете разместить здесь скриншот, если вы не нашли проблему.

+0

nope .. это не помогло – Abhinav

+0

Я обновляю свой ответ. Попробуйте добавить 'android: layout_gravity =" center "' – vovahost

+0

Я добавил еще несколько инструкций. См. Ответ. – vovahost

Смежные вопросы