2017-02-01 5 views
0

私は自分のページにその半分を表示して回転するサークルを持っています。私はコードとそのwokでそれをプッシュしたが、私は例えばtextviewsのテキストを変更したい、またはコードの可視性を再度設定したい場合はいつでも、それを再度プッシュしたい場合は遅延が表示されます。 なぜそれが起こり、どのように修正できますか? または他の方法を提案できる場合は、私は満足しています。レイアウト内の項目を変更すると、計測値をプログラマチックに変更した内部レイアウトが最初のメジャーに戻ります

これは私のxmlレイアウトです:

public CustomLinearLayout(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     myContext = context; 
    } 

    @Override 
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) 
    { 
     super.onMeasure(widthMeasureSpec, heightMeasureSpec+((int)myContext.getResources().getDimension(R.dimen.quickplay_offset))); 
    } 

と私はこのような私のコードでQuickPlayClipLayoutの位置を設定します:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/background_blue" 
    android:fitsSystemWindows="true"> 



    <com.aa.ccc.activities.CustomLinearLayout 
     android:id="@+id/QuickPlayClipLayout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_centerHorizontal="true" 
     android:gravity="center_horizontal"> 

     <RelativeLayout 
      android:id="@+id/clip_layout" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:gravity="center_horizontal" /> 
    </com.aa.ccc.activities.CustomLinearLayout> 

     <TextView 
      android:id="@+id/text_no_score" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentEnd="true" 
      /> 



</RelativeLayout> 

これはCustomLinearLayoutクラスで私が見つけ

@BindView(R.id.QuickPlayClipLayout) 
    LinearLayout mainLayout; 



    public static GameTestFragment newInstance() { 
     GameTestFragment fragment = new GameTestFragment(); 
     return fragment; 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 


    @Override 
    public void onAnimationStart(Animation animation) { 

    } 

    @Override 
    public void onAnimationEnd(Animation animation) { 
     mainLayout.setVisibility(View.VISIBLE); 
     mainLayout.layout(0, -(int) this.getResources().getDimension(R.dimen.quickplay_offset), 
       mainLayout.getWidth(), mainLayout.getHeight() + (int) this.getResources().getDimension(R.dimen.quickplay_offset)); 

    } 

    @Override 
    public void onAnimationRepeat(Animation animation) { 

    } 

答えて

0

私の問題の解決策。実際にはonchreateの後に が発生し、遅延の原因となっていました。 私はそれを押し上げるためにCustomLinearLayoutにマイナスのマージンを入れます。その機能を実行するコードを削除します。

<com.aa.ccc.activities.CustomLinearLayout 
    android:id="@+id/QuickPlayClipLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_alignParentTop="true" 
    android:layout_marginTop="-95dp" 
    android:gravity="center_horizontal|top"> 

    <RelativeLayout 
     android:id="@+id/clip_layout" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:gravity="center_horizontal" /> 
</com.aa.ccc.activities.CustomLinearLayout> 
関連する問題