我有一个相对布局,其中包含两个TextView:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.pris.ViewActivity"
tools:ignore="MergeRootFrame">
<TextView
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/myDes" />
<TextView
android:id="@+id/tex"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/description"
android:text="@string/myText" />
<AutoCompleteTextView
android:id="@+id/textfield"
android:layout_width="200dip"
android:layout_height="wrap_content"
android:layout_below="@+id/tex"
android:completionThreshold="1"
android:inputType="text" />
<Button
android:id="@+id/but"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/suchen"
android:layout_toRightOf="@+id/textfield"
android:layout_alignParentRight="true"
android:onClick="addToList" />
<Button
android:id="@+id/but2"
android:layout_weight="1.0"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Liste löschen"
android:layout_below="@+id/ex"
android:onClick="removeList" />
<ListView
android:id="@+id/ex"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_weight="1.0"
android:choiceMode="singleChoice"
android:layout_below="@+id/but">
</ListView>
</RelativeLayout>
我只插入&#34;描述&#34;最近,文本很长 - 现在它与它下面的所有内容重叠。
我该如何改变?
如果可能,我不想更改整个布局,遗憾的是,无法缩短文本。
答案 0 :(得分:1)
您是否尝试将ScrollView置于RelativeLayout上方?
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ScrollView>
另外,检查.xml的结尾,你缺少结束标记
答案 1 :(得分:1)
<强>已更新强>
你必须为按钮提供对齐 android:layout_toRightOf =“@ + id / textfield”
检查
<Button
android:id="@+id/but"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="tex"
android:layout_below="@id/tex"
android:layout_toRightOf="@+id/textfield"
android:layout_alignParentRight="true"
android:onClick="addToList" />
以下是布局的完整代码
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:padding="10dp"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/dumy" />
<TextView
android:id="@+id/tex"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/description"
android:text="tex" />
<AutoCompleteTextView
android:id="@+id/textfield"
android:layout_width="200dip"
android:layout_height="wrap_content"
android:layout_below="@+id/tex"
android:completionThreshold="1"
android:inputType="text" />
<Button
android:id="@+id/but"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="tex"
android:layout_below="@id/tex"
android:layout_toRightOf="@+id/textfield"
android:layout_alignParentRight="true"
android:onClick="addToList" />
<Button
android:id="@+id/but2"
android:layout_weight="1.0"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Liste löschen"
android:layout_below="@+id/ex"
android:onClick="removeList" />
<ListView
android:id="@+id/ex"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_weight="1.0"
android:choiceMode="singleChoice"
android:layout_below="@+id/but"></ListView>
</RelativeLayout>
</ScrollView>
和截图
答案 2 :(得分:1)
通过运行时添加以下功能来滚动文本:
TextView description = (TextView) findViewById(R.id.description);
description.setSingleLine();
description.setEllipsize(TruncateAt.MARQUEE);
description.setSelected(true);
<强>更新强>
因此,您必须创建自定义视图:
首先,创建以下类:
import android.content.Context;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.widget.TextView;
public class ScrollingTextView extends TextView {
public ScrollingTextView(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
}
public ScrollingTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ScrollingTextView(Context context) {
super(context);
}
@Override
protected void onFocusChanged(boolean focused, int direction,
Rect previouslyFocusedRect) {
if (focused) {
super.onFocusChanged(focused, direction, previouslyFocusedRect);
}
}
@Override
public void onWindowFocusChanged(boolean focused) {
if (focused) {
super.onWindowFocusChanged(focused);
}
}
@Override
public boolean isFocused() {
return true;
}
}
然后,在 xml布局中定义TextView
时,请按以下方式定义:
<!-- use the path of the package which you put the class ScrollingTextView in -->
<com.example.ScrollingTextView
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/myDes"
android:ellipsize="marquee"
android:lines="1"
android:marqueeRepeatLimit="marquee_forever"
android:singleLine="true"/>
然后在您的活动中声明它:
com.example.ScrollingTextView description = (com.example.ScrollingTextView) findViewById(R.id.description);
答案 3 :(得分:0)
我解决了。
实际上很简单。
我采用原始布局并添加:
android:scrollHorizontally="true"
到第一个textview。在TextVew的API上找到了。
就是这样。