[英]add ScrollView and HorizontalScrollView to a TableLayout
我的問題就像放一個ScrollView HorizontalScrollView和一個包含TextView Array的表。
這是我的main.java:
public class tabla extends Activity {
SitesList sitesList = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tabla);
TableLayout layout =(TableLayout)findViewById(R.id.tabla);
TableRow tr[] = new TableRow[80];
TextView variacion[];
TextView nemotecnico[];
TextView precio[];
try {
/** Handling XML */
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
/** Send URL to parse XML Tags */
URL sourceUrl = new URL("http://www.bovalpo.com/cgi-local/xml_bcv.pl?URL=75");
/** Create handler to handle XML Tags ( extends DefaultHandler ) */
MyXMLHandler myXMLHandler = new MyXMLHandler();
xr.setContentHandler(myXMLHandler);
xr.parse(new InputSource(sourceUrl.openStream()));
} catch (Exception e) {
System.out.println("XML Pasing Excpetion = " + e);
}
/** Get result from MyXMLHandler SitlesList Object */
sitesList = MyXMLHandler.sitesList;
/** Assign textview array lenght by arraylist size */
nemotecnico = new TextView[sitesList.getNemotecnico().size()];
variacion = new TextView[sitesList.getVariacion().size()];
precio = new TextView[sitesList.getPrecio().size()];
/** Set the result text in textview and add it to layout */
for (int i = 0; i < sitesList.getRegistro().size(); i++) {
variacion[i] = new TextView(this);
variacion[i].setText(" " +sitesList.getVariacion().get(i));
nemotecnico[i] = new TextView(this);
nemotecnico[i].setText(" " +sitesList.getNemotecnico().get(i));
precio[i] = new TextView(this);
precio[i].setText(" " + sitesList.getPrecio().get(i));
Pattern pattern = Pattern.compile("^([a-z: ]*)?+(\\+?[0-9]+([,\\.][0-9]*)?)$");
Matcher matcher = pattern.matcher(sitesList.getVariacion().get(i));
if (!matcher.matches())
variacion[i].setTextColor(Color.parseColor("#ff0000"));
else
variacion[i].setTextColor(Color.parseColor("#008000"));
}
for (int i = 0; i < 80; i++) {
tr[i] = new TableRow(this);
tr[i].addView(nemotecnico[i], new TableRow.LayoutParams(1));
tr[i].addView(precio[i], new TableRow.LayoutParams(2));
tr[i].addView(variacion[i], new TableRow.LayoutParams(3));
layout.addView(tr[i], new TableLayout.LayoutParams());
}
/** Set the layout view to display */
setContentView(layout);
}
}
如您在我的代碼中看到的:
TableLayout layout =(TableLayout)findViewById(R.id.tabla);
TableRow tr[] = new TableRow[80];
TextView variacion[];
TextView nemotecnico[];
TextView precio[];
並在TableRow中顯示TextView
for (int i = 0; i < 80; i++) {
tr[i] = new TableRow(this);
tr[i].addView(nemotecnico[i], new TableRow.LayoutParams(1));
tr[i].addView(precio[i], new TableRow.LayoutParams(2));
tr[i].addView(variacion[i], new TableRow.LayoutParams(3));
layout.addView(tr[i], new TableLayout.LayoutParams());
}
/** Set the layout view to display */
setContentView(layout);
但是我不能放HorizontalScrollView和ScrollView,因為我的Xml如下所示。
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/tabla"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/fondo" >
</TableLayout>
非常感謝您的幫助,謝謝!
我不明白為什么您不能在垂直和水平滾動視圖中都包裝整個表格,也不能包裝單個單元格(無論您喜歡哪個)。 第一個選項如下所示:
<ScrollView ...>
<HorizontalScrollView ...>
<TableLayout ...>
</HorizontalScrollView>
</ScrollView>
但是,這僅允許用戶針對每個手勢水平或垂直滾動,而不是對角滾動。 但是這個問題涵蓋了創建一個二維ScrollView: android中垂直和水平 ScrollView。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.