我知道这是本网站上一个备受争议的话题,之前已经多次询问过。但到目前为止的所有回复都没有太大帮助。
基本上我要做的是创建一个包含信息的textField。就像反恐精英中的控制台一样。我想要一个允许用户输入的文本输入框。我希望能够动态地将文本行添加到上面提到的文本框中,我希望它能够滚动到底部。因此,最新的文本条目或添加的文本始终位于底部。但我仍然可以向上滚动并查看旧条目。
所以基本上就像反恐精英控制台一样。或任何其他游戏文本控制台:
http://www.counter-strike-source-tips.com/images/counter-strike-source-binding.jpg
这是一个图像作为例子^^
非常感谢你。我花了两天时间......
这是我到目前为止所尝试的内容:
滚动查看 文本滚动垂直条
但似乎没有任何内容可以自动向下滚动到最新条目。
这是我的错误XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<TextView
android:id="@+id/shipName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginBottom="10dp"
android:text="Ship Name"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TableLayout
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/shipName" >
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/upgrade2Name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" Speed:" />
<TextView
android:id="@+id/speedActual"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/shipDistance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/shipName"
android:layout_below="@+id/upgrade2Name"
android:text=" Distance:"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/distanceActua"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/shipDistance"
android:layout_toRightOf="@+id/shipName"
android:text="0" />
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/shipLocation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/shipName"
android:layout_below="@+id/shipDistance"
android:text=" Location:"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/locationActual"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/shipDistance"
android:layout_toRightOf="@+id/shipName"
android:text="Earth - Launch Station" />
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/shipFuel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/shipLocation"
android:layout_below="@+id/shipLocation"
android:text=" Fuel:" />
<ProgressBar
android:id="@+id/fuelBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/statusActual"
android:layout_alignParentRight="true"
android:layout_toRightOf="@+id/shipName" />
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/shipStatus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/shipFuel"
android:layout_below="@+id/shipFuel"
android:text=" Status:" />
<TextView
android:id="@+id/statusActual"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/data"
android:layout_toRightOf="@+id/shipName"
android:text="Ready for Launch" />
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/shipStatus"
android:layout_below="@+id/shipStatus"
android:text=" Data:" />
<TextView
android:id="@+id/vehicleInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/data"
android:layout_alignBottom="@+id/data"
android:layout_toRightOf="@+id/shipName"
android:text="0" />
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/researchPoints"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/data"
android:layout_below="@+id/data"
android:text=" Research Points: " />
<TextView
android:id="@+id/vehicleMoney"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/vehicleInfo"
android:layout_toRightOf="@+id/shipName"
android:text="0" />
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</TableRow>
</TableLayout>
<LinearLayout
android:id="@+id/buttons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="center_horizontal"
android:orientation="horizontal" >
<Button
android:id="@+id/launchButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/upgradeButton"
android:layout_alignBottom="@+id/upgradeButton"
android:layout_centerHorizontal="true"
android:text="Launch" />
<Button
android:id="@+id/upgradeButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_marginBottom="14dp"
android:text="Upgrade" />
</LinearLayout>
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/main"
android:layout_marginLeft="40dp"
android:layout_marginTop="38dp" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/newsFeed"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:scrollbars="vertical"
android:maxLines="10"
android:text="newsfeed" />
</LinearLayout>
</ScrollView>
newsFeed应该是滚动发生的地方:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/newsFeed"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:scrollbars="vertical"
android:maxLines="10"
android:text="newsfeed" />
</LinearLayout>
</ScrollView>
再次感谢你。
答案 0 :(得分:0)
你试过这个吗?
scroll.fullScroll(View.FOCUS_DOWN);
或
ScrollView scrollView = (ScrollView)findViewById(R.id.scroll);
scrollView.scrollTo(0, scrollView .getBottom());
语法:
public void scrollTo (int x, int y)
设置视图的滚动位置。这将导致对onScrollChanged(int,int,int,int)的调用,并且视图将失效。
参数:
x:滚动到
的x位置y:滚动到
的y位置http://developer.android.com/reference/android/view/View.html#scrollTo%28int,%20int%29