Android EditText水平滚动条未移动
我的编辑文本:Android EditText水平滚动条未移动,android,horizontal-scrolling,android-scroll,Android,Horizontal Scrolling,Android Scroll,我的编辑文本: android:scrollbars="horizontal|vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:inputType="textMultiLine|textNoSuggestions" android:ems="10" android:gravity="top|left" 我的代码: myet = (EditText) findViewB
android:scrollbars="horizontal|vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:inputType="textMultiLine|textNoSuggestions"
android:ems="10"
android:gravity="top|left"
我的代码:
myet = (EditText) findViewById(R.id.myedittext);
myet.setScrollbarFadingEnabled(true);
myet.setHorizontallyScrolling(true);
出于某种奇怪的原因,它确实会滚动,但滚动条本身并没有移动,它被固定在edittext的左下角
我想这与edittext没有静态宽度有关
如何修复水平滚动条,使其能够移动,并使其大小与最长的行成比例
注意:它必须是多行的,并且还可以垂直滚动。好的。。我知道这可能不是一个完美的解决方案,但以下是我在其他帖子中发现的 这确实有效,但滚动条上的进度不是很明显。虽然有滚动效果,你肯定可以看到进展 下面是java的代码:
et = (EditText) getActivity().findViewById(R.id.et1);
et.setScroller(new Scroller(getActivity())); //This may not be needed.
et.setHorizontalScrollBarEnabled(true);
et.setScrollbarFadingEnabled(true);
et.setHorizontallyScrolling(true);
et.setMovementMethod(new ScrollingMovementMethod());
下面是它的布局:
<EditText
android:id="@+id/et1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:ems="10"
android:scrollHorizontally="true"
android:scrollbarAlwaysDrawHorizontalTrack="true"
android:scrollbarFadeDuration="2000"
android:scrollbarSize="80dp"
android:scrollbarStyle="insideInset"
android:scrollbarTrackHorizontal="@drawable/ic_drawer"
android:scrollbars="horizontal"
android:text="Hello"
android:textSize="80sp" >
</EditText>
现在,这是工作顺利,单杠是伟大的工作,非常响应。试试看。它工作得很好。。祝你好运……) 您是否尝试过
textIsSelectable
flag?@Wakim,是的,似乎没有帮助。为什么您不在HorizontalScrollView中使用EditText。@Haresh我尝试过,但对我无效,但可能设置不正确。@agam360,请尝试只设置一个属性android:singleLine=“true”并检查发生了什么。“程序已停止”,这不是多行:/I我希望将scoller设置为屏幕宽度,但其大小与最长的行成比例。我知道。。这就是问题所在。我还要试试别的。。但是有没有记录为什么应用程序停止了?这可能是图像的原因。。不要使用太大的分辨率图像。它会记录:“E/AndroidRuntime﹕ 致命的异常:main java.lang.NullPointerException”-但我重复一遍,这并不是我想要的。我真的很感激你的努力!没问题。。我在我的设备上试过这个,代码对我来说很好。可能这个问题的解决方案不同..将继续搜索答案Ddo您有新的解决方案吗?
<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:background="#999999"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<HorizontalScrollView
android:id="@+id/SCROLLER_ID"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#333333"
android:fillViewport="true"
android:scrollbars="horizontal" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/TEXT_STATUS_ID"
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:layout_weight="1.0"
android:text="Hello"
android:textColor="#cccccc"
android:textSize="35sp" />
</LinearLayout>
</HorizontalScrollView>
</RelativeLayout>
public class MainActivity extends Activity {
TextView tv1;
HorizontalScrollView mScrollView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv1 = (TextView) findViewById(R.id.TEXT_STATUS_ID);
mScrollView = (HorizontalScrollView) findViewById(R.id.SCROLLER_ID);
// loadDoc();
String s = "Nam ornare mattis nulla vitae vestibulum. "
+ "Mauris ac tellus diam. Nam dictum dolor augue,"
+ "quis hendrerit tortor aliquam et. Proin eu gravida augue."
+ "\n"
+ "Fusce lorem dolor, faucibus quis auctor eu, interdum at lorem."
+ "Suspendisse mi elit, suscipit semper mauris et, "
+ "interdum adipiscing lectus. Nulla laoreet arcu "
+ "\n"
+ "sollicitudin ultricies laoreet. Curabitur a bibendum nibh. "
+ "Etiam eget quam vitae sapien pellentesque facilisis. "
+ "Fusce nec enim vel mauris ultrices blandit ut sed purus."
+ " Vivamus ut sem nisi. Cras molestie ligula ac dui fermentum,"
+ " id placerat mauris rhoncus. Curabitur erat urna, ornare a placerat ac, "
+ "interdum nec diam. Donec sodales imperdiet nulla, ut ultricies elit.";
tv1.setText(s);
scrollToBottom();
}
private void scrollToBottom() {
mScrollView.post(new Runnable() {
public void run() {
tv1.setHorizontallyScrolling(true);
tv1.setMovementMethod(new ScrollingMovementMethod());
mScrollView.smoothScrollTo(0, tv1.getBottom());
}
});
}
}