我希望有一个动态表,在ScrollView中使用TableLayout,随着时间的推移,用户交互会添加行.这工作正常,但是当我想使用滚动到表的末尾时fullScroll(),它总是省略最后一行; 也就是说,它滚动使得最后一个之前的那个可见.手动滚动时最后一行是可见的,滚动条也是正确的.
我当然乐于接受如何更好地布局的建议; 但我特别感兴趣的是理解为什么fullScroll()会这样做.我应该给它一个不同的参数,还是完全使用别的东西?或者它是否这样做,因为新添加的行不知何故可见?(如果是这样,我该如何解决?)或者我是否还想念其他一些明显的事情?
以下代码复制了该问题:
TestActivity.java:
package com.example.android.tests;
import java.util.Random;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ScrollView;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
public class TestActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
((Button) findViewById(R.id.AddRow)).setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Random rnd = new Random();
TableRow nr = new TableRow(v.getContext());
for (int c=0; c<3; c++) {
TextView nv = new TextView(v.getContext());
nv.setText(Integer.toString(rnd.nextInt(20)-10));
nr.addView(nv);
}
((TableLayout) findViewById(R.id.Table)).addView(nr);
// …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过保留旧浏览器(特别是IE8,IE9和Opera 10+)的表格,将基于表格和JS的旧布局转换为具有向后兼容性的新Flexbox.
问题是没有display:flex-item覆盖旧的风格display:table-cell.
我尝试了各种各样的定义display:inherit,display:initial但没有一个能够重置显示定义以正常工作作为flex项.
<!-- HTML user list -->
<div class="userDetails layout">
<div class="picture"><img src="..."></div>
<div class="details">username, email, etc.</div>
</div>
/* CSS Table Layout */
.layout { display: table; width: 100%; }
.layout > .picture { display: table-cell; width: 30%; }
.layout > .details { display: table-cell; width: auto; }
/* CSS Flexbox - ignored by browsers that does not support it */
/* just an example - should use all versions …Run Code Online (Sandbox Code Playgroud) 我有一个线性布局,里面只有一个TableLayout.表格布局还有两行,每行两列.First Table Row有两个图像.Second Table Rows有两个按钮.
但这并没有显示在整个屏幕上,而只是显示在前半部分或者可能取决于图像高度.两个图像实际上是相同的文件,但显示不同的宽度.请帮助...这是布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TableLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:stretchColumns="*">
<TableRow
android:layout_height="fill_parent">
<ImageView
android:id="@+id/tp_image"
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_weight="0.9"
android:scaleType="fitXY"
android:src="@drawable/images" />
<ImageView
android:id="@+id/s_image"
android:src="@drawable/images"
android:layout_width="0dip"
android:layout_height="fill_parent"
android:scaleType="fitXY"
android:layout_weight="0.1"
/>
</TableRow>
<TableRow >
<Button
android:id="@+id/button_LC"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/button_LC"/>
<Button
android:id="@+id/button_RC"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/button_RC"/>
</TableRow>
</TableLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) 我创建了一个skinny没有边距,填充或边框的CSS类:
.skinny
{
margin:0 0 0 0;
padding:0 0 0 0;
border:0 0 0 0;
}
Run Code Online (Sandbox Code Playgroud)
我将它应用到包含图像的行中,该图像也skinny应用了类:
<td width="33%" align="center" class="skinny">
<table width="400px" height="180px" class="skinny">
<tr class="skinny">
<td class="skinny" width="60px" height="100px"><a class="skinny" href="/"><img class="skinny" width="60px" height="100px" id="snapshot" src="/images/snapshot.png"></a></td>
<td class="skinny" width="120px" height="100px"><a class="skinny" href="/"><h1 class="skinny">Product</h1></a></td>
</tr>
</table>
</td>
Run Code Online (Sandbox Code Playgroud)
我试图使图像看起来尽可能接近<h1>下一个单元格中的文本,以便它们从左到右相互向上推.
但无论我将这个skinny类应用到多少元素,似乎有一些类似于每个表格单元格周围的"填充",这会在图像和文本之间创建一个空格.
我该如何删除?
我有一个问题似乎是在Firefox 3和4之间引入的.基本上它与它有关table-layout: fixed.
我有一个可滚动的表,它使用两个DIV,一个用于标题,一个用于正文(遗憾的是它是唯一适用于我的选项).
正文表看起来像这样(请注意,这都是使用JavaScript生成的,它是GWT应用程序的一部分):
<table style="table-layout: fixed;">
<colgroup>
<col width="61" />
<col width="57" />
</colgroup>
<tbody>
<!-- data -->
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
(顺便说一下,页面被声明为HTML 4.01 Transitional)
似乎在Firefox 3中,列宽正在受到尊重.但是,在Firefox 4中,它似乎在某些时候忽略了列宽(很难确切地确定,但通常当表开始变得足够小以使Firefox变得棘手时).如果我在Firefox中检查列宽,它们通常与HTML中指定的宽度几乎没有关系.
我只是想知道是否有人可以解释为什么会发生这种情况?
我想创建一个应用程序就像打开android的屏幕.我动态地将图像添加到tableLayout的行.我只在xml文件中定义了tableLayout,剩下的代码在java中.我已成功添加图像,但我没有得到任何帮助设置该图像的文本(我想在图像下显示文本)和图像是一个特定的填充.如何做?如果提前感谢.
我在LinearLayout中有这个ListView:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
.../>
<EditText />
...
</EditText>
<ListView
android:id="@+id/words_list"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
List由SimpleCursorAdapter以编程方式填充:
adapter = new SimpleCursorAdapter(this, R.layout.list_row_search, mCursor, from, to);
Run Code Online (Sandbox Code Playgroud)
list_row_search有一个带有两个TableRows的TableLayout:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/TableLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<View
android:layout_height="1dip"
android:background="#FF33B5E5" />
<TableRow
android:id="@+id/tableRow1"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/list_lesson"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="1dip"
android:textSize="12sp" />
<TextView
android:id="@+id/list_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="5.25"
android:padding="1dip"
android:paddingRight="10dp"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:id="@+id/list_flex"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="12.5"
android:padding="1dip"
android:paddingRight="10dp" />
<TextView
android:id="@+id/list_rom"
android:layout_width="0dp" …Run Code Online (Sandbox Code Playgroud)