2016-01-27 210 views
1

我是一個初學者在創建Android應用程序,所以請善待如果我的問題是愚蠢的......的Android TableLayout比屏幕寬度更寬

我想打一個表,其中顯示了structered方式的一些數據,但我的問題是,我有7列,他們不適合在屏幕上。所以最後一個色彩組在開始時就被切斷了,這不僅看起來很糟糕,而且對我來說也是一個問題,因爲重要的是,這個色彩也顯示出來了。

爲了讓UA大約更好的視野,我的意思:

我得到這個代碼:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" 
android:layout_height="fill_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="*censored*" 
android:background="@drawable/gardient_background"> 

<ScrollView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/scrollView" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:scrollbars="none" 
    android:overScrollMode="never" 
    android:fillViewport="true"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <TableLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:id="@+id/representations_table" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentEnd="true" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:stretchColumns="6" 
      android:orientation="vertical"> 

      <TableRow 
       android:layout_width="match_parent" 
       android:layout_height="match_parent"> 

       <TextView 
        style="@style/TableHeaderRow" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:id="@+id/stage_header" 
        android:paddingLeft="5dp" 
        android:ellipsize="end" 
        android:singleLine="true" 
        android:width="25dp" 
        android:textSize="15dp" 
        android:textStyle="bold" /> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/hour" 
        android:id="@+id/hour_header" 
        style="@style/TableHeaderRow" 
        android:paddingLeft="5dp" 
        android:ellipsize="end" 
        android:singleLine="true" 
        android:width="50dp" 
        android:textStyle="bold" 
        android:textSize="15dp" /> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/subject" 
        android:id="@+id/subject_header" 
        android:paddingLeft="5dp" 
        style="@style/TableHeaderRow" 
        android:ellipsize="end" 
        android:singleLine="true" 
        android:width="40dp" 
        android:textStyle="bold" 
        android:textSize="15dp" /> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/room" 
        android:id="@+id/room_header" 
        android:paddingLeft="5dp" 
        style="@style/TableHeaderRow" 
        android:ellipsize="end" 
        android:singleLine="true" 
        android:width="50dp" 
        android:textStyle="bold" 
        android:textSize="15dp" /> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/teacher" 
        android:id="@+id/teacher_header" 
        android:paddingLeft="5dp" 
        style="@style/TableHeaderRow" 
        android:ellipsize="end" 
        android:singleLine="true" 
        android:width="50dp" 
        android:textStyle="bold" 
        android:textSize="15dp" /> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/info" 
        android:id="@+id/info_header" 
        android:paddingLeft="5dp" 
        style="@style/TableHeaderRow" 
        android:ellipsize="end" 
        android:singleLine="true" 
        android:width="60dp" 
        android:textStyle="bold" 
        android:textSize="15dp" /> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/text" 
        android:id="@+id/text_header" 
        android:paddingLeft="5dp" 
        style="@style/TableHeaderRow" 
        android:ellipsize="end" 
        android:singleLine="true" 
        android:width="30dp" 
        android:textStyle="bold" 
        android:textSize="15dp" /> 

      </TableRow> 

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

但是這給了我:

The Code Result

但我需要屏幕內的最後一個色彩(你可以看到這個顏色的「V」的一部分) 我知道有一些不可能的事情,就像有很多文本,這就是爲什麼它不可能,但在這種情況下,我希望文本將縮短「.. 。「就像你在screentshot中看到的那樣(Stunde - > Stun ...)。

所以最後:我怎樣才能把整個表(我不在乎,如果它塞滿),在整個屏幕寬度?

請注意:我不是新的編程,我確定在Java,PHP,JS,C#等。我只是在設計和使用Android API方面做得不好。

回答

0

您可以嘗試爲列分配權重,以便它們全都顯示出來。其他選項是針對手機和平板電腦擁有不同的視圖,即僅在平板電腦/橫向視圖中顯示所有列,並在縱向視圖中以不同方式顯示數據。