2016-01-27 155 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

您可以尝试为列分配权重,以便它们全都显示出来。其他选项是针对手机和平板电脑拥有不同的视图,即仅在平板电脑/横向视图中显示所有列,并在纵向视图中以不同方式显示数据。