为啥 android 中的 MyTextView 不对齐? [复制]

Posted

技术标签:

【中文标题】为啥 android 中的 MyTextView 不对齐? [复制]【英文标题】:why MyTextView in android isn't aligned to right? [duplicate]为什么 android 中的 MyTextView 不对齐? [复制] 【发布时间】:2013-11-23 04:35:10 【问题描述】:
<LinearLayout
        android:id="@+id/tipTitleLayout"
        android:layout_
        android:layout_
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="2dp"
        android:gravity="center_horizontal"
        android:orientation="horizontal" >

        <com.me.view.text.MyTextView
            android:id="@+id/tipTitleText"
            style="@style/popupTitle"
            android:layout_
            android:layout_
            android:layout_alignParentTop="true"
            android:layout_gravity="left"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="38dp"
            android:layout_marginTop="10dp"
            android:gravity="left"
            android:text="Tip" />

    </LinearLayout>

但是当 ltrMode 开启时,我的代码不会改变重力。

我想以编程方式更改它。

怎么来的?

private void setUpforRTL()
    if (AppService.getNativeManager().getLanguageRtl()) 

        TextView addText2 = ((TextView)findViewById(R.id.tipText));
        addText2.setGravity(Gravity.RIGHT);

        TextView title = ((TextView)findViewById(R.id.tipTitleText));
        title.setGravity(Gravity.RIGHT);

        LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)title.getLayoutParams();
        params.gravity = Gravity.RIGHT;

        title.setLayoutParams(params); //causes layout update

    


【问题讨论】:

不,另一个是准确的。我更改了 xml 和问题太多次。我将另一个标记为关闭。 您是否尝试过将父级更改为RelativeLayout。 【参考方案1】:

更新布局参数后,你应该在周围视图上调用requestLayout

【讨论】:

【参考方案2】:

试试这个

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tipTitleLayout"
    android:layout_
    android:layout_
    android:gravity="right|center_vertical"
    android:padding="10dp"
    android:orientation="horizontal" >

    <com.me.view.text.MyTextView
        android:id="@+id/tipTitleText"
        style="@style/popupTitle"
        android:layout_
        android:layout_
        android:text="Tip" />

</LinearLayout>

【讨论】:

你能解释一下吗?我希望它仅在 rtlmode 开启时为 rtl。 它是否有效?【参考方案3】:

将标题声明更改为 LinearLayout,因为您在 xml 中将其定义为 LL。

【讨论】:

在哪里?没看懂 为什么是-1? TextView 标题 = ((TextView)findViewById(R.id.tipTitleText)); title.setGravity(Gravity.RIGHT); 还要注意你的 layout.xml。看起来你对重力/layout_gravity 做了很多 tipTitleText 不是线性布局。你在哪里看到的? 我的错,抱歉,看到的是tipTitleLayout 而不是tipTitleText。尝试减少 layout/layout_gravity 和 margin 设置。尝试使用没有 LinearLayout 的 Textview。这就是我会尝试的。

以上是关于为啥 android 中的 MyTextView 不对齐? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

InflateException:Bin file line #19:Error inflating class MyTextView

Android 自定义属性

UItextView 文本隐藏

style定义

为啥android中的计算与php中的计算不同?

Android自定义View(初体验自定义TextView)