2017-05-15 17 views
-1

enter image description hereWie kann ich Schaltflächen dynamisch an die Bildschirmgröße anpassen?

Ich habe Tasten in einem Table-Layout. Ich habe die Tasten dynamisch in der Tabelle Layout hier

TableLayout tblHotels=(TableLayout) findViewById(R.id.tblLayout); 
     if(hotels != null){ 
      int index=0; 
      for (int i=0; i<(hotels.length/2); i++) { 
       TableRow tblRow=new TableRow(getApplicationContext()); 
       tblHotels.addView(tblRow); 
       tblRow.setLayoutParams(new TableLayout.LayoutParams(
         TableLayout.LayoutParams.MATCH_PARENT,TableLayout.LayoutParams.MATCH_PARENT)); 
       for (int j=0;j<2; j++) 
       { 
        tblRow.addView(hotels[index]); 
        hotels[index].setLayoutParams(new TableRow.LayoutParams(
          TableRow.LayoutParams.MATCH_PARENT,TableRow.LayoutParams.MATCH_PARENT, 1.0F)); 
        hotels[index].setOnClickListener(this); 
        index++; 
       } 
      } 
     } 

Aber es scheint, als auf dem Bildschirm ich meine Tasten in der gleichen Breite und ein wenig größer Höhe will. Wie kann ich es tun? Meine Xmlfile ist jetzt so.

`<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    tools:context="com.example.arzucaki.sherwoodhotels.Hotels" 
    android:weightSum="1" 
    > 


    <TableLayout 
     android:id="@+id/tblLayout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:alpha="0.6" 
     android:gravity="bottom" 
     android:orientation="vertical" 
     android:layout_alignParentTop="true"> 


    </TableLayout> 




</RelativeLayout>` 
+0

Wenn 100 Hotels (mehr bedeutet), dann Tabellenlayout nicht korrekt angezeigt wird. Es ist besser, list/recyclerview/gridview layout zu verwenden. –

Antwort

0

Sie können die Tabellenzeilen in XML-Datei und definieren die Höhe der Tabellenzeilen in dimens.xml Datei gehen Sie vor und erstellen:

Hier ist eine Darstellung Beispiel:

<TableRow 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/table_row_height"> 

     <TextView 
      android:text="Time" 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:layout_height="match_parent" 
      android:layout_column="1" /> 

     <TextView 
      android:text="Time" 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:layout_height="match_parent" 
      android:layout_column="2" /> 
    </TableRow> 

hinzufügen Datei dimens.xml für alle Auflösungen, die Sie in ihren jeweiligen Ordnern unterstützen möchten. Zum Beispiel Werte, Werte-w820dp usw. einfach eine neue Datei als dimens in diesen Ordnern erstellen und Wert wie folgt erklären:

<resources> 
<!-- Table Row height --> 
<dimen name="table_row_height">16dp</dimen> 

Dieser Wert wird höher sein in einer anderen Datei unter Werte-w820dp basierend auf Ihrer Anforderung, vielleicht so:

<resources> 
<!-- Table Row height --> 
<dimen name="table_row_height">24dp</dimen> 

+0

ok versuche ich warte eine min – arzucaki

+0

alle tasten füllen nur den bildschirm mit gewicht 1. ich will nur wissen, wie kann ich eine spezielle höhe wie ein prozentsatz des bildschirms, die in allen geräten mit unterschiedlicher bildschirmgröße laufen würde. – arzucaki

+0

in diesem Fall müssen Sie diese Tabellenzeilen in XML-Datei definieren und Größe Abmessungen in Dimens Datei entsprechend verschiedenen Auflösungen des Geräts wie mdpi, hdpi, xhdpi, xxhdpi und xxxhdpi Sie können auch weitermachen und ändern Sie die Match-Parent zu wrap_content und bieten einige Polsterung, auf diese Weise werden die Steuerelemente nicht den vollständigen Bildschirm einnehmen und bieten auch einige Auffüllen. Aber für Ihre Anforderung, dass die Größe je nach Geräteauflösung variieren sollte, müssen Sie mit der Datei dimens gehen. – Saurabh7474

Verwandte Themen