【问题标题】:Android -how to make view fill only the rest of the screen onlyAndroid - 如何使视图仅填充屏幕的其余部分
【发布时间】:2011-12-10 21:48:46
【问题描述】:

我有一个用于表示坐标系的自定义视图。 该视图用于我的一个 xml 文件中。 以下是 xml 文件中的一些内容:

...lots of diff views..
 <org.test.ScreenProximityView android:layout_below="@+id/screen_proximity_orix_edit"
          android:layout_alignParentLeft="true" android:id="@+id/proxTest" 
          android:layout_marginTop="70dp" android:layout_height="match_parent" 
          android:layout_width="match_parent">
</org.test.ScreenProximityView>
</RelativeLayout>

问题是,我希望我的视图只填充屏幕的其余部分。当我使用 match_parent 时,我得到一个与屏幕一样大的视图,但就像一半被裁剪到屏幕“外部”一样。 那么如何调整视图大小以使其仅适合屏幕的其余部分?

编辑:我将像这样在它的画布上绘制:

 public void onDraw(Canvas canvas) {
      canvas.drawLine(0, 0, canvas.getWidth(), 0, mPaint);
         canvas.drawLine(0, 0, 0, canvas.getHeight(), mPaint);
         canvas.drawLine(0, canvas.getHeight(), canvas.getWidth(), canvas.getHeight(), mPaint);
         canvas.drawLine(canvas.getWidth(), canvas.getHeight(), canvas.getWidth(), 0, mPaint);
         canvas.drawLine(canvas.getWidth()/2, 0, canvas.getWidth()/2, canvas.getHeight(), mPaint);
         canvas.drawLine(0, canvas.getHeight()/2, canvas.getWidth(), canvas.getHeight()/2, mPaint);

}

这使得大部分东西都粘在可视屏幕的外面。

【问题讨论】:

    标签: java android xml layout view


    【解决方案1】:

    使用

    android:layout_weight = "1"
    

    对于要占用剩余空间的视图。使用 LinearLayout 作为父视图。其余的孩子不应该有任何重量。

    【讨论】:

    • 父视图是RelativeLayout。那我该怎么办?
    • 将 linearLayout 作为父视图,其余视图在 relativeLayout 中,将此相对布局作为第一个子级添加到线性布局,并将需要剩余空间的视图作为第二个子级添加到 linearLayout。
    • 好吧,我试过了,但是当我画的时候,我仍然有一部分在屏幕之外。我已经更新了我的 OP
    猜你喜欢
    • 2021-04-05
    • 2019-04-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 2013-07-25
    • 2019-06-13
    • 1970-01-01
    • 2016-08-12
    相关资源
    最近更新 更多