В моем файле макета xml у меня есть ScrollView
. Раньше я использовал вес для разделения TextView в каждом TableRow, но это не удовлетворяло мои потребности, поэтому я решил использовать столбцы в TableLayout
.
Моя проблема заключается в том, что когда я пытаюсь применить дополнение к ScrollView или RelativeLayout «Контейнера», некоторый текст обрезается. Если я обращаюсь к любому дочернему элементу ScrollView, он не показывает самую нижнюю часть TableLayout. Ближе всего к тому, что я хочу, я применил отступы только к TableRows в TableLayout, но текст «Версия сборки» обрезается по горизонтали (см. снимок экрана ниже). В остальном это было бы удовлетворительно.
layout.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" >
<ScrollView
android:id="@+id/svMain"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/adMainBanner"
android:layout_alignParentTop="true"
android:fillViewport="true" >
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<!-- Build -->
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:gravity="center_horizontal"
android:text="@string/build"
android:textSize="18sp"
android:textStyle="bold" />
<TableRow android:layout_width="match_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:text="@string/manufacturer" />
<TextView
android:id="@+id/tvManufacturer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="1"
android:text="text" />
</TableRow>
<TableRow android:layout_width="match_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:text="@string/model" />
<TextView
android:id="@+id/tvModel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="1"
android:text="text" />
</TableRow>
<TableRow android:layout_width="match_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:text="@string/hardware" />
<TextView
android:id="@+id/tvHardware"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="1"
android:text="text" />
</TableRow>
<TableRow android:layout_width="match_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:text="@string/board" />
<TextView
android:id="@+id/tvBoard"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="1"
android:text="text" />
</TableRow>
<TableRow android:layout_width="match_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:text="@string/bootloader" />
<TextView
android:id="@+id/tvBootLoader"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="1"
android:text="text" />
</TableRow>
<TableRow android:layout_width="match_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:text="@string/device" />
<TextView
android:id="@+id/tvDevice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="1"
android:text="text" />
</TableRow>
<TableRow android:layout_width="match_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:text="@string/brand" />
<TextView
android:id="@+id/tvBrand"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="1"
android:text="text" />
</TableRow>
<TableRow android:layout_width="match_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:text="@string/android_version" />
<TextView
android:id="@+id/tvAndroidVersion"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="1"
android:text="text" />
</TableRow>
<TableRow android:layout_width="match_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:text="@string/build_version" />
<TextView
android:id="@+id/tvBuildVersion"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="1"
android:text="text" />
</TableRow>
<!-- Service / Carrier -->
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:layout_marginTop="15dp"
android:gravity="center_horizontal"
android:text="@string/carrier_service"
android:textSize="18sp"
android:textStyle="bold" />
<TableRow android:layout_width="match_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:text="@string/carrier" />
<TextView
android:id="@+id/tvCarrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="1"
android:text="text" />
</TableRow>
<TableRow android:layout_width="match_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:text="@string/phone_number" />
<TextView
android:id="@+id/tvPhoneNumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="1"
android:text="text" />
</TableRow>
<TableRow android:layout_width="match_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:text="@string/service_mode" />
<TextView
android:id="@+id/tvServiceMode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="1"
android:text="text" />
</TableRow>
<!-- Network -->
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:layout_marginTop="15dp"
android:gravity="center_horizontal"
android:text="@string/network"
android:textSize="18sp"
android:textStyle="bold" />
<TableRow android:layout_width="match_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:text="@string/phone_type" />
<TextView
android:id="@+id/tvPhoneType"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="1"
android:text="text" />
</TableRow>
<TableRow android:layout_width="match_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:text="@string/network_type" />
<TextView
android:id="@+id/tvNetworkType"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="1"
android:text="text" />
</TableRow>
<TableRow android:layout_width="match_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:text="@string/baseband" />
<TextView
android:id="@+id/tvBaseBand"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="1"
android:text="text" />
</TableRow>
<!-- CPU -->
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:layout_marginTop="15dp"
android:gravity="center_horizontal"
android:text="@string/cpu_info"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvCpuInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:text="text" />
<!-- Ram -->
<!-- If I apply padding/margin to any container layout,
this gets cut off(does not show in scrollview)-->
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:layout_marginTop="15dp"
android:gravity="center_horizontal"
android:text="@string/ram_info"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvRamInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:text="text" />
</TableLayout>
</ScrollView>
<com.google.ads.AdView
xmlns:googleads="http://schemas.android.com/apk/lib/com.google.ads"
android:id="@+id/adMainBanner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
googleads:adSize="SMART_BANNER"
googleads:adUnitId="@string/admob_banner_id"
googleads:loadAdOnCreate="true" />
</RelativeLayout>
Скриншоты
Как это выглядит без отступов и полей, версия сборки обрезана:
А это вся версия сборки:
Почему текст версии сборки не переносится на новую строку? После того, как я этого добьюсь, как мне применить отступы/поля ко всему моему файлу макета, не прерывая что-то внутри ScrollView? Любая помощь, пожалуйста, это очень ценится :)
android:layout_width="wrap_content"
наandroid:layout_width="match_parent"
дляandroid:id="@+id/tvBuildVersion"
TextView
. Можете ли вы прокручивать по горизонтали? Кроме того, я бы применил поля кTableLayout
или отступы кScrollView
. - person BVB   schedule 22.01.2014match_parent
, текст вообще не будет переноситься. Нет, это вертикальный ScrollView, поэтому нет горизонтальной прокрутки. и, как указывалось ранее, когда я делаю именно то, что вы указали с отступом/маржем, самый последний TextView в макете не отображается. - person MattMatt   schedule 22.01.2014