如何在Android中使EditText文本竖直显示

6

非常抱歉我的问题描述不够清晰,我已经更新过了。

如何在XML文件中实现旋转?我尝试使用以下代码,但并不正确(我使用了“android:rotation=”-90“进行旋转)。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<FrameLayout
    android:layout_width="141dp"
    android:layout_height="200dp"
    android:layout_weight="0.41"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/sidebar_title"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/shape_card_sidebar"
        android:inputType="text"
        android:rotation="-90"
        android:text="I want to be like this" >
    </EditText>
</FrameLayout>

enter image description here


1
你想要一个 EditText 还是一个 TextView?另外,你当前的代码有什么问题? - TronicZomB
什么不正确?你确切想要什么?和图片一样吗?光标会如何显示?如何插入数据? - stinepike
1
除非您解释“不正确”是什么意思,否则没有人能真正帮助您。还要注意,android:rotation仅适用于API级别11或更高级别。 - CommonsWare
2个回答

2

如果你试图以那种方式来做,你会遇到几个问题。最明显的问题是测量不准确。相反,你应该创建一个自定义视图。可以像这样:

public class RotatedTextVew extends TextView {
    public RotatedTextView(Context context) {
        super(context);
    }

    public RotatedTextView(Context context, AttributeSet attrs) {
        super(context, attrs)
    }

    public RotatedTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        // Switch dimensions
        super.onMeasure(heightMeasureSpec, widthMeasureSpec);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        canvas.save();
        canvas.rotate(90);
        super.onDraw(canvas);
        canvas.restore();
    }
}

我实际上还没有测试过这个,但这是我开始的方式。


0

请将您的FrameLayout替换为<Relative>或<LinearLayout>。同时设置父布局的android:gravity="center"属性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接