【问题标题】: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_width="match_parent"
        android:layout_height="50dp"
        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_width="wrap_content"
            android:layout_height="60dp"
            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。

标签: java android android-layout layout


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    试试这个

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/tipTitleLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        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_width="wrap_content"
            android:layout_height="wrap_content"
            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。这就是我会尝试的。
    猜你喜欢
    • 2019-01-29
    • 1970-01-01
    • 2012-10-04
    • 2018-11-18
    • 2011-07-23
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    相关资源
    最近更新 更多